介绍完栈之后,接下来要介绍的是另一种跟栈很相似的数据结构 —— 队列,和栈一样,队列也是一中特殊的线性表结构,只不过队列是在一端插入,另一端删除,就跟我们平常排队一样的道理,从队尾入队,在队头出去,所以队列的特性是先入先出(FIFO),允许插入的一端叫队尾,允许删除的一端叫队头。一张图可以形象的体现 ...
分类:
其他好文 时间:
2019-08-03 12:31:19
阅读次数:
58
三种类型: 直接提交:工作队列的默认选项是 SynchronousQueue,它将任务直接提交给线程而不保持它们。在此,如果不存在可用于立即运行任务的线程,则试图把任务加入队列将失败,因此会构造一个新的线程。此策略可以避免在处理可能具有内部依赖性的请求集时出现锁。直接提交通常要求无界maximumP ...
分类:
编程语言 时间:
2019-08-02 10:49:07
阅读次数:
555
消息无序产生的原因消息队列,既然是队列就能保证消息在进入队列,以及出队列的时候保证消息的有序性,显然这是在消息的生产端(Producer),但是往往在生产环境中有多个消息的消费端(Consumer),尽管消费端在拉取消息时是有序的,但各个消息由于网络等方面原因无法保证在各个消费端中处理时有序。场景分析先后两次修改了商品信息,消息A和消息B先后同步写入MySQL,接着异步写入消息队列中发送消息,此时
分类:
其他好文 时间:
2019-07-30 12:54:41
阅读次数:
93
一、getline和get()的使用区别: 首先这两个函数都读取下一行输入,直到到达换行符;但是getline()函数会丢弃换行符,而get()将换行符保留在输入序列中 二、getline()函数的使用方法: getline()函数读取整行,它使用通过回车输入的换行符来确定输入结尾。要调用这种方法, ...
分类:
其他好文 时间:
2019-07-22 22:42:04
阅读次数:
204
拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 /(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 每排中最高者站中间(中间位置为 /,其中 m 为该排人数,除法向下取整); 每排其他人以中间人为轴,按身高非增序,先右后左交替 ...
分类:
其他好文 时间:
2019-07-21 10:35:41
阅读次数:
108
题目链接:http://poj.org/problem?id=3414 思路: 因为有六种操作,所以六种操作中合法的都加入队列中BFS 如何去输出路径呢? 我们不妨设一个string数组,它的索引就和我们的步数有关,然后按顺序输出就可以了。 之后有一道题的记录路径的方式也比较巧妙:poj 3984 ...
分类:
其他好文 时间:
2019-07-15 01:35:09
阅读次数:
158
c++ bfs基本应用 Knight Moves 题目描述 贝茜和她的表妹在玩一个简化版的国际象棋。棋盘如图所示: 贝茜和表妹各有一颗棋子。棋子每次移一步,且棋子只能往如图所示的八个方向移动。比赛的规则很简单,两个人需要从起点将棋子移到终点,谁能花最少的步数从起点走到终点,就是赢家。 为了确保能赢表 ...
分类:
编程语言 时间:
2019-07-14 13:03:50
阅读次数:
134
Nagios运行原理 Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。 启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信 ...
分类:
移动开发 时间:
2019-07-14 00:16:10
阅读次数:
197
1、DelayQueue是阻塞队列中非常有用的一种队列,经常被用于缓存或定时任务等的设计。
2、ScheduledThreadPoolExecutor.DelayedWorkQueue就是一种延时阻塞队列。
分类:
编程语言 时间:
2019-07-10 21:28:41
阅读次数:
129
PriorityBlockingQueue属于比较特殊的阻塞队列,适用于有元素优先级要求的场景。它的内部和ArrayBlockingQueue一样,使用一个了全局独占锁来控制同时只有一个线程可以进行入队和出队,入队线程并不会阻塞。
分类:
编程语言 时间:
2019-07-09 12:15:17
阅读次数:
135