1、环形缓冲区缓冲区的好处,就是空间换时间和协调快慢线程。缓冲区可以用很多设计法,这里说一下环形缓冲区的几种设计方案,可以看成是几种环形缓冲区的模式。设计环形缓冲区涉及到几个点,一是超出缓冲区大小的的索引如何处理,二是如何表示缓冲区满和缓冲区空,三是如何入队、出队,四是缓冲区中数据长度如何计算。ps...
分类:
其他好文 时间:
2016-01-19 19:03:59
阅读次数:
353
rabbitMQ是一种高性能的消息队列,支持或者说它实现了AMQP协议(advanced message queue protocol高级消息队列协议)。下面简单讲一讲一个小例子。我们首先要部署好rabbitMQ,然后实现一个生产者—消费者,生产者向rabbit中发布一个消息,消费者去rabbit取...
分类:
其他好文 时间:
2016-01-14 00:50:55
阅读次数:
351
一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式。利用redis这两种场景的消息队列都能够实现。生产者消费者模式:生产者生产消息放到队列里,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息;即对于每个消息只能被最多一个消费者拥有;发布者订阅者模式:发布者生产消....
分类:
其他好文 时间:
2016-01-12 23:10:17
阅读次数:
252
消息缓冲队列通信机制其基本思想是根据“生产者——消费者”原理,利用内存中公用消息缓冲区实现进程间的信息交换。在这种通信机制中,首先需要在内存中开辟若干空闲消息缓冲区,用以存放要通信的消息。每当一个进程需要向另一个进程发送消息时,便向系统申请一个空闲消息缓冲区,并把已准备好的消息复制到该缓冲区,然后把...
分类:
其他好文 时间:
2016-01-09 21:26:16
阅读次数:
1472
引言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况:生产者消费者图 存储空间已满,而生产者占用着它,消费者等着生产者让出空间从而去除产品,生产者等着消费者消费产品,.....
分类:
编程语言 时间:
2016-01-04 21:04:29
阅读次数:
203
生产者和消费者模式在生活当中随处可见,它描述的是协调与协作的关系。比如一个人正在准备食物(生产者),而另一个人正在吃(消费者),他们使用一个共用的桌子用于放置盘子和取走盘子,生产者准备食物,如果桌子上已经满了就等待,消费者(那个吃的)等待如果桌子空了的话。这里桌子就是一个共享的对象。在Java .....
分类:
其他好文 时间:
2016-01-03 22:29:37
阅读次数:
261
本文主要内容:1)信号量的实现;2)利用信号量解决哲学家用餐问题;3)利用信号量解决生产者消费者问题
分类:
编程语言 时间:
2015-12-30 22:11:48
阅读次数:
513
生产者:不停地往队列中放数据消费者:不停地从队列中拿数据两者通过两个信号量同步当生产者不再生产数据时,消费者正好挂在一个信号量上,处于睡眠状态。这时候pthread_join也会一直挂着的。该如何使得消费者正常退出呢?我的做法是让生产者在往队列中放一个【结束数据】,也就是一个标识,消费者拿到数据后,...
分类:
编程语言 时间:
2015-12-30 19:33:27
阅读次数:
160
1 #import "ViewController.h" 2 3 @interface ViewController () 4 { 5 NSMutableArray *_arr; 6 NSCondition *_condition; 7 } 8 @end 9 ...
分类:
移动开发 时间:
2015-12-29 22:27:37
阅读次数:
336
http://www.cnblogs.com/wupeiqi/articles/4356675.htmlpython线程http://www.cnblogs.com/bizhu/archive/2012/05/17/2506202.html生产者消费者模型http://triaquae.readthedocs.org/en/latest/python写的一个软件。http://www.cnblogs.com/alex3714/p/4372426.htmlpython异步h..
分类:
编程语言 时间:
2015-12-29 19:40:46
阅读次数:
160