共享队列和双队列
来源:互联网 发布:阿里云服务器上传代码 编辑:程序博客网 时间:2024/05/02 01:48
1第一种方式,共享队列
两个线程共享一个队列,一个往里写,一个往外读,我将写入数据的那个线程叫做writer,读出数据的那个线程叫做reader。这样,writer线程在工作时,reader线程只能等待,reader线程在工作时写线程只能等待。有人会说,可以多来几个reader这样可以使用RWLOCK,但根据应用场景,这里就只有一个消费者。这是一种最简单的方式,也是最基本的方式,效率也很低。在这里就不再讨论这个方式的实现了。
2第二种方式,双队列
两个线程各自一个队列,writer线程往队列1写数据,reader线程从队列2读数据,而在队列2为空时,我将队列1中的数据拼接或交换到队列2中,这样只有这个短暂的交换或拼接动作需要加锁。
那么这里还有个问题,当队列1中有多少数据后拼接到队列2的效率是最高的呢?架构师给了一个建议,先以16个、32个、64个这样的步进进行测试,直到找到性能最好的队列拼接长度。而我最后没有使用架构师给出的这个建议,而是模拟内核与用于空间之间的网络读写接口,这样就把这个任务给了系统调度,大概策略如下:
1、
2、
3、
a)
b)
c)
d)
- 共享队列和双队列
- 第四课 共享内存和消息队列
- 信号机制、共享内存和消息队列
- 信号机制、共享内存和消息队列
- Linux信号量 共享内存和消息队列
- Linux C 消息队列和共享内存
- linux 信号量、共享内存、和消息队列
- 信号量、消息队列和共享内存
- 信号量,共享内存和消息队列
- 13--信号量,共享内存和消息队列
- (十三) 信号量、消息队列和共享内存
- (十三) 信号量、消息队列和共享内存
- IPC对象、共享内存和消息队列
- 信号量、共享内存和消息队列
- 17. 信号量,共享内存和消息队列
- [zz]栈和队列,双端队列
- 栈和队列、双端队列
- 栈和队列--队列
- Linux下分割与合并文件的方法
- java.lang.NullPointerException at org.apache.struts.action.ActionServlet.parseModuleConfigFile(Actio
- 1、ubuntu基本操作 - ssh的使用
- Quartz Trigger
- 关于git server 搭建
- 共享队列和双队列
- 解决Eclipse修改目录或删除目录后,编译提示invalid project path
- ubuntu12.04LTS 下安装MyEclispe
- iphone开发内存管理之──深拷贝和浅拷贝
- 进程名与进程号的对应关系获取
- iOS系统安全机制概览
- javaassist修改constructor构造函数,增加方法,修改方法
- Clistctrl多行删除总结
- iSuppli:Nexus 7 成本价152美元 利润远不敌iPad