应用场景: 典型的生产者-消费者模式, 目前虽已实现,但存在一些问题,准备更换成MSMQ. 多个生产者(producer)应用从业务平台拉取订单放入队列应用(QueueManager)(自己实现), 多个消费者(consumer)应用从队列应用中每次取出1笔订单进行处理,处理完成后直接向业务平台返回 ...
分类:
其他好文 时间:
2016-07-15 19:28:50
阅读次数:
160
转自:http://blog.csdn.net/lenyusun/article/details/6609786 在工作中,大家可能会碰到这样一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理 ...
分类:
其他好文 时间:
2016-07-13 10:30:14
阅读次数:
142
1、简单的小例子: 下面这个例子主要观察的是: 一个对象的wait()和notify()使用情况! 当一个对象调用了wait(),那么当前掌握该对象锁标记的线程,就会让出CPU的使用权,转而进入该对象的等待池中等待唤醒,这里说明一下,每一个对象都有一个独立的等待池和锁池! 等待池:上述的wait() ...
分类:
编程语言 时间:
2016-07-10 21:48:44
阅读次数:
244
BackpressureRx 中的数据流是从一个地方发射到另外一个地方。每个地方处理数据的速度是不一样的。如果生产者发射数据的速度比消费者处理的快会出现什么情况?在同步操作中,这不是个问题,例如:// Produce
Observable producer = Observable.create(o -> {
o.onNext(1);
o.onNext(2);...
分类:
编程语言 时间:
2016-07-10 18:42:52
阅读次数:
400
欢迎讨论与交流 : ) 注 代码参考自——汇智网 RxJS教程 前言 Observable观察者模式令小白笔者眼前一亮。数据生产者(observable)负责生产新鲜的数据,同时在生产完毕后'通知“消费者”:“hey!哥们,货已经准备好了,你可以过来拿啦!” 代码 ...
分类:
Web程序 时间:
2016-07-05 01:04:12
阅读次数:
466
t1 t3 生产者 t2 t4 消费者 针对notify(); 当t1生产一个产品后,flag判断完之后 wait一下 (释放锁,cpu) 接着t2 t3 t4 抢夺cpu 如,t2抢到后 也wait了 内存池(存放同一个锁的等待线程)t1 > t2 到了t3 消费了一个唤醒了t1 ,t3进入内存池 ...
分类:
编程语言 时间:
2016-07-03 10:24:18
阅读次数:
191
2016-07-02 【参考资料】 [1] Java轻松入门经典教程【完整版】 ...
分类:
编程语言 时间:
2016-07-02 18:51:32
阅读次数:
216
生产者消费者问题是多线程并发中一个非常经典的问题。我在这里实现了一个基于C++11的,单生产者单消费者的版本,供大家参考。 注意我判断item_buffer中的物品是否全空或者全满的条件:生产者和消费者的位置相等时,若该位置上为空则buffer全空,若为满则buffer全满。 ...
分类:
编程语言 时间:
2016-07-01 21:24:56
阅读次数:
143
ReentrantLock介绍
ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。
顾名思义,ReentrantLock锁在同一个时间点只能被一个线程锁持有;而可重入的意思是,ReentrantLock锁,可以被单个线程多次获取。
ReentrantLock分为“公平锁”和“非公平锁”。它们的区别体现在获取锁的机制上是否公平。“锁”是为了保护竞争资源,防止多个线程同时操作线...
分类:
编程语言 时间:
2016-07-01 11:56:56
阅读次数:
284
利用ArrayBlockingQueue可以方便的实现生产者和消费者,所有消费者线程共用资源ArrayBlockingQueue对象,从而实现线程安全.生产者线程搜索当前目录及子目录,并且将相应的File对象添加到队列中,消费者线程对每个File对象进行关键字的查询,如果查到头,即停止查询. ...
分类:
编程语言 时间:
2016-06-30 23:17:51
阅读次数:
149