第四题:两个栈实现队列 用两个栈实现队列,支持队列的基本操作。输入描述:第一行输入一个整数N,表示对队列进行的操作总数。下面N行每行输入一个字符串S,表示操作的种类。如果s为"add",则后面还有一个整数x表示向队列尾部加入整数X。如果s为"poll",则表示弹出队列头部操作。如果s为"peek", ...
分类:
其他好文 时间:
2020-04-27 09:24:13
阅读次数:
84
Spring Boot 自定义kafka 消费者配置 ContainerFactory最佳实践 本篇博文主要提供一个在 SpringBoot 中自定义 kafka配置的实践,想象这样一个场景:你的系统需要监听多个不同集群的消息,在不同的集群中topic冲突了,所以你需要分别定义kafka消息配置。 ...
分类:
编程语言 时间:
2020-04-26 20:53:05
阅读次数:
122
题目: 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果: [ [3], [9,20], [15,7]] 提示: 节点总数 <= 1000 解答 ...
分类:
其他好文 时间:
2020-04-21 16:50:29
阅读次数:
54
在 Queue 中 poll()和 remove()有什么区别? 答: 队列(queue)是一个典型的先进先出(FIFO)的容器。即从容器的一端放入事物,从另一端取出,并且事物放入容器的顺序与取出的顺序是相同的。 相同点: 都是返回第一个元素,并在队列中删除返回的对象。 不同点: remove() ...
分类:
其他好文 时间:
2020-04-19 11:19:16
阅读次数:
80
一、服务端 import socketserver import time conn_poll = [] class MyServer(socketserver.BaseRequestHandler): def handle(self): print('... connected from {}'. ...
分类:
编程语言 时间:
2020-04-18 09:56:56
阅读次数:
62
缘由 之前写socket的CS模型代码,都是利用最原始的多线程方式。服务端是主线程,接到客户端的连接请求就从线程池中获取一个线程去处理整个socket连接的所有操作,虽然在连接数较短的情况下没有什么影响,但是当连接数很大的情况下,线程的切换和线程池的大小问题就明显起来了。 问题 应该存在一种方式可以 ...
分类:
其他好文 时间:
2020-04-16 19:46:40
阅读次数:
79
Epoll的实现原理: Epoll采用事件触发的机制,通过用户创建Epoll对象并注册事件宏监听具体事件,以达到事件发生时触发任务的执行。 为了更好得理解Epoll的机制,我简单得理解为Socket的交互本身就是两个读、写缓冲区,然后Epoll就是监听这两个缓冲区的数据非空、非满的状态,非空代表有数 ...
分类:
其他好文 时间:
2020-04-16 19:36:17
阅读次数:
59
1/ Leetcode 225 使用队列实现栈 1. 队列的初始化: Queue是接口,队列由链表实现 : Queue<> q = new LinkedList<>(); 2.Queue的基本使用方法: offer 添加一个元素并返回true 如果队列已满,则返回false poll 移除并返问队列 ...
分类:
其他好文 时间:
2020-04-15 00:14:43
阅读次数:
72
简介 Poller class 是IO multiplexing的封装。在muduo中它是一个抽象类,因为muduo同时支持poll和epoll两种IO multiplexing机制。Poller是EventLoop的间接成员,只供其owner EventLoop在IO线程中调用,因此无需加锁。其生 ...
分类:
其他好文 时间:
2020-04-14 22:54:29
阅读次数:
63
[TOC] 一 、IO操作本质 数据复制的过程中不会消耗CPU 二、 IO模型 1. BIO – 阻塞模式I/O 用户进程从发起请求,到最终拿到数据前,一直挂起等待; 数据会由用户进程完成拷贝 2. NIO – 非阻塞模式I/O 用户进程发起请求,如果数据没有准备好,那么立刻告知用户进程未准备好;此 ...
分类:
其他好文 时间:
2020-04-14 21:05:27
阅读次数:
129