线程池的封装,基础思想与生产者消费者的封装一样,只不过我们是将线程池封装为自动获取任务、执行任务,让用户调用相应的接口来添加任务。在线程池的封装中,我们同样需要用到的是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
多生产者多消费者问题
以生产馒头 消费馒头为例。
class Resource
{
private String name;
private int count = 1;
private boolean flag = false;
public synchronized void set(String name)
{
if (flag)
{
try {
...
分类:
编程语言 时间:
2014-10-13 02:21:18
阅读次数:
208
1、阻塞队列 BlockingQueue是线程安全的Queue版本,从它的名字就可以看出,它是一个支持阻塞的Queue实现:当向空BlockingQueue请求数据时,它会阻塞至BlockingQueue非空;当向一个已满BlockingQueue插入数据时,线程会阻塞至BlockingQueu.....
分类:
编程语言 时间:
2014-10-12 18:50:48
阅读次数:
302
前言
配置资源的一种方式是交给市场控制,但是这种配置方式是否合意呢?在本章中,我们要讨论福利经济学(welfare economics)这个主题,即研究资源配置如何影响经济福利的一门学问。这种分析将得出一个影响深远的的结论:市场上的供求均衡可以使买者和卖者得到的总利益最大化。
消费者剩余
支付意愿
假设你有一张崭新的猫王首张专辑想要卖出,卖出的一...
分类:
其他好文 时间:
2014-10-12 18:32:38
阅读次数:
1037
前面在《眉目传情之匠心独运的kfifo》一文中详细解析了 linux 内核并发无锁环形队列kfifo的原理和实现,kfifo鬼斧神工,博大精深,让人叹为观止,但遗憾的是kfifo为内核提供服务,并未开放出来。剑不试则利钝暗,弓不试则劲挠诬,鹰不试则巧拙惑,马不试则良驽疑,光说不练是不能学到精髓的,下面就动手实现自己的并发无锁队列UnlockQueue(单生产者单消费者)。...
分类:
其他好文 时间:
2014-10-11 19:11:36
阅读次数:
336
//信号量---线程间通信//“生产者消费者” 问题#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