线程池的封装,基础思想与生产者消费者的封装一样,只不过我们是将线程池封装为自动获取任务、执行任务,让用户调用相应的接口来添加任务。在线程池的封装中,我们同样需要用到的是MutexLock、Condition、Thread这些基本的封装。基础封装如下:MutexLock: 1 #ifndef MUTE...
分类:
编程语言 时间:
2014-10-14 14:17:39
阅读次数:
328
轻量级服务总线/消息队列1)多种消息模式--支持生产者/消费者,发布订阅,RPC2)丰富的API--C/C++/C#/JAVA/Python/Node.JS跨平台、多语言支持3)开放协议标准--原生兼容HTTP协议(长连接),头部动态扩展4)支持TrackServer与ZbusServer高可用横向...
分类:
其他好文 时间:
2014-10-13 20:11:47
阅读次数:
354
条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。int pthread_cond_wait(pthread_cond_t *cond...
分类:
其他好文 时间:
2014-10-13 17:27:29
阅读次数:
417
1、阻塞队列 BlockingQueue是线程安全的Queue版本,从它的名字就可以看出,它是一个支持阻塞的Queue实现:当向空BlockingQueue请求数据时,它会阻塞至BlockingQueue非空;当向一个已满BlockingQueue插入数据时,线程会阻塞至BlockingQueu.....
分类:
编程语言 时间:
2014-10-12 18:50:48
阅读次数:
302
//信号量---线程间通信//“生产者消费者” 问题#include#include#include#include#include#define msleep(x) usleep(x*1000)#define PRODUCT_SPEED 3 //生产速度#define CONSUM_SPEED 1...
分类:
其他好文 时间:
2014-10-10 23:51:04
阅读次数:
222
类似于Java阻塞队列的实现:public class BlockingQueue { private List queue = new LinkedList(); private int limit = 10;//缓冲区大小 public BlockingQueue(int limit){...
分类:
编程语言 时间:
2014-10-09 02:34:37
阅读次数:
197
http://www.cnblogs.com/haippy/p/3252092.htmlhttp://www.cnblogs.com/lidabo/p/3024829.html
分类:
编程语言 时间:
2014-10-08 14:58:55
阅读次数:
201
生产者,消费者问题是有关互斥锁(MutexLock)、条件变量(Condition)、线程(Thread)的经典案例;描述的问题可以叙述为 生产者往buffer中投放产品,而消费者则从buffer中消费产品。生产着消费者问题的难点在于:为了缓冲区数据的安全性,一次只允许一个线程进入缓冲区投放或者消费...
分类:
系统相关 时间:
2014-10-08 02:39:14
阅读次数:
304
生产者消费者问题是计算机中一类重要的模型,主要描述的是:生产者往缓冲区中放入产品、消费者取走产品。生产者和消费者指的可以是线程也可以是进程。 生产者消费者问题的难点在于: 为了缓冲区数据的安全性,一次只允许一个线程进入缓冲区,它就是所谓的临界资源。 生产者往缓冲区放物品时,如果缓冲区已满,那么需要等...
分类:
系统相关 时间:
2014-10-07 22:12:34
阅读次数:
305
1 package producer; 2 3 public class SyncStack { 4 int index =0; 5 SteamedBun[] bunArr = new SteamedBun[6]; //栈里只能放6个元素 6 7 ...
分类:
编程语言 时间:
2014-10-07 13:11:23
阅读次数:
228