在处理网络分包时,包未收完整时,必定需要一个缓冲区来缓存数据,ring_buffer是最常用的选择。它是一个比较简单的数据结构,在学《数据结构》时想必大家都实现过,但我前几天就被它教育了一把,write时,一处分支漏了个等号,些许情况下会缓冲区溢出,导致堆栈一些数据被破坏,让我足足花了一整天才找到这 ...
分类:
其他好文 时间:
2016-08-16 00:11:27
阅读次数:
261
1、生产者消费者问题三种关系:生产者--生产者(互斥);消费者-消费者(互斥);生产者--消费者(互斥同步)两个角色:生产者;消费者一种生产场所:缓冲区2、环形队列(缓冲区)数据结构:可以有多种,这里选用数组,逻辑上将a[0]和a[size-1]相连构成环形队列判断空/判断满:..
分类:
其他好文 时间:
2016-07-20 19:49:13
阅读次数:
309
/***环形队列**/publicclassAnnularQueue{ int[]intArray;//容器 intsize;//长度 inthead;//头 inttail;//尾 publicAnnularQueue(intsize) { intArray=newint[size]; size=0; head=0; tail=-1; } /** *判满 *@return */ publicbooleanisFull() { if(intArray.length==si..
分类:
其他好文 时间:
2016-06-12 23:39:54
阅读次数:
254
MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素! 创建固定集合 我们通过createCollection来创建一个固定集合,且capped选项设置为 ...
分类:
移动开发 时间:
2016-04-20 16:26:34
阅读次数:
190
管道内部如何实现-大小,组织方式,环形队列?一.进程间通信有多种方式,本文主要讲解对管道的理解。管道分为匿名管道和命名管道。(1)管道(pipe):又称匿名管道。是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子..
分类:
系统相关 时间:
2016-04-12 07:45:20
阅读次数:
262
环形队列是一个首尾相连的FIFO(命名管道)的数据结构,它采用数组的线性空间。它能很快知道队列是否为满或者为空,也能很快的存取数据。原理:内存上没有环形结构,因此环形队列利用数组的线性空间来实现。当数据到了尾部时,它将转回到0位置来处理。这个转回操作通过取模来执..
分类:
其他好文 时间:
2016-04-10 01:34:20
阅读次数:
525
MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素! 1. 创建固定集合: db.createCollection("cappedLogCollecti
分类:
移动开发 时间:
2016-03-20 17:52:28
阅读次数:
214
1、环形缓冲区缓冲区的好处,就是空间换时间和协调快慢线程。缓冲区可以用很多设计法,这里说一下环形缓冲区的几种设计方案,可以看成是几种环形缓冲区的模式。设计环形缓冲区涉及到几个点,一是超出缓冲区大小的的索引如何处理,二是如何表示缓冲区满和缓冲区空,三是如何入队、出队,四是缓冲区中数据长度如何计算。ps...
分类:
其他好文 时间:
2016-01-19 19:03:59
阅读次数:
353
最近在看数据结构,队列在数据结构中是个重要的元素。定义:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。队列主要分为普通队列和环形队列,环形队列比普通队列的使用效率更高(普通队列容易造成内存的浪费,时间效率也会降低,主要体现在队列的删除操作上)下面用java来实现队列,仅供参考packa...
分类:
编程语言 时间:
2015-12-13 18:41:51
阅读次数:
282
本组项目针对《数据结构基础系列(3):线性表》中的7-12课:7.队列的定义
8. 顺序队的存储及基本操作
9. 环形队列的存储及基本操作
10. 队列的链式存储结构及其基本运算的实现
11. 队列的应用-迷宫问题
12. 双端队列 【项目1 - 建立顺序环形队列算法库】
定义顺序环形队列存储结构,实现其基本运算,并完成测试。
要求:
1、头文件sqqueue.h中定...
分类:
其他好文 时间:
2015-10-06 09:13:10
阅读次数:
652