Design your implementation of the circular queue. The circular queue is a linear data structure in which the operations are performed based on FIFO (F ...
分类:
其他好文 时间:
2018-11-03 01:55:33
阅读次数:
184
零、时间轮定义简单说说时间轮吧,它是一个高效的延时队列,或者说定时器。实际上现在网上对于时间轮算法的解释很多,定义也很全,这里引用一下朱小厮博客里出现的定义:参考下图,Kafka中的时间轮(TimingWheel)是一个存储定时任务的环形队列,底层采用数组实现,数组中的每个元素可以存放一个定时任务列表(TimerTaskList)。TimerTaskList是一个环形的双向链表,链表中的每一项表示
分类:
编程语言 时间:
2018-10-26 22:24:51
阅读次数:
356
零、时间轮定义 简单说说时间轮吧,它是一个高效的延时队列,或者说定时器。实际上现在网上对于时间轮算法的解释很多,定义也很全,这里引用一下朱小厮博客里出现的定义: 参考下图,Kafka中的时间轮(TimingWheel)是一个存储定时任务的环形队列,底层采用数组实现,数组中的每个元素可以存放一个定时任 ...
分类:
编程语言 时间:
2018-10-26 17:44:10
阅读次数:
175
1 //生产者和消费者问题 2 //使用环形队列 3 //解决了生产过剩的问题 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 11 //定义环形队列类型 12 #define Q_MAX 7 13 typed... ...
分类:
其他好文 时间:
2018-07-29 16:35:03
阅读次数:
134
Disruptor作者,介绍Disruptor能每秒处理600万订单。这是一个可怕的数字。 disruptor之所以那么快,是因为内部采用环形队列和无锁设计。使用cas来进行并发控制。通过获取可用下标来对事件发布和消费 下标通过cas控制(Atomic) disruptor组成部分 1.Disrup ...
分类:
其他好文 时间:
2018-05-06 13:34:37
阅读次数:
270
基于环形队列的超时触发算法只需要一个timer即可实现批量超时任务的触发,CPU消耗低,效率高。下面是此算法的简单实现。1,TaskHolder.javapackage com.zws.timer;
/**
*
* @author wensh.zhu
* @date 2018-04-22
分类:
编程语言 时间:
2018-04-23 00:17:56
阅读次数:
165
1.学习总结(2分) 1.1 顺序栈,链栈,顺序队列,环形队列,链式队列 1.2 2.PTA实验作业(4分) 2.1 题目1:7 1 jmu 字符串是否对称 2.2 设计思路(伪代码或流程图) 2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染) 2.4 PTA提交 ...
分类:
其他好文 时间:
2018-04-15 11:44:58
阅读次数:
180
MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素! 创建固定集合 我们通过createCollection来创建一个固定集合,且capped选项设置为 ...
分类:
数据库 时间:
2018-02-21 15:00:45
阅读次数:
177
环形队列主要应用在单线程读或者写,无需要锁,相比较Queue队列,Queue队列可能会出现单个元素的时候又读又写造成死锁。 ...
分类:
其他好文 时间:
2017-11-25 14:28:16
阅读次数:
168
1、前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟 ...
分类:
系统相关 时间:
2017-11-21 01:12:35
阅读次数:
221