无线程同步:存储数据: 1 public class Storage { 2 int data; 3 4 public int getData() { 5 return data; 6 } 7 8 public void setData(int ...
分类:
编程语言 时间:
2014-08-19 18:49:25
阅读次数:
258
背景:
当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战:
如何收集这些巨大的信息如何分析它 如何及时做到如上两点
以上几个挑战形成了一个业务需求模型,即生产者生产(produce)各种信息,消费者消费(consume)(处理分析)这些信息,而在生产者与消费者之间,需要一个沟通两...
分类:
其他好文 时间:
2014-08-18 12:38:34
阅读次数:
191
说明
Java中,线程之间的通信主要是由java.lang.Object类提供的wait、notify和notifyAll这3个方法来完成:
①对象的wait方法被调用后,线程进入对象的等待队列中,并释放对象锁,其它线程可以竞争使用此对象锁;sleep方法使得一个线程进入睡眠状态,但是线程所占有的资源并没有释放。
②当对象的notify方法被调用,该方法会从对象的等待队列中随机取出一个线...
分类:
编程语言 时间:
2014-08-13 13:05:56
阅读次数:
270
package concurrency;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Storage { private int capacity; ...
分类:
编程语言 时间:
2014-08-05 10:47:39
阅读次数:
322
1、生产者与消费者问题的描述
一个或者多个生产者,一个或者多个消费者。生产者在一条生产线不停地生产产品,消费者们不停地消费产品,需要注意的是
这里的生产线属于临界资源(Critical Source).
当生产线的产品生产满之后,生产者不能再往生产线生产产品,当生产线为空时消费者不能往生产线消费产品。
生产线里面有两个方法,生产和消费,这两个方法都临界区(Criti...
分类:
其他好文 时间:
2014-08-03 18:12:45
阅读次数:
282
publicclassPandC{
publicstaticvoidmain(String[]args){
newThread(newProducer(),"生产者").start();
newThread(newConsumer(),"消费者").start();
}
}
//通过单例模式保证资源唯一
classResource{
privateStringname;
privateintcount;
privatebooleanflag=false;..
分类:
编程语言 时间:
2014-07-22 18:29:51
阅读次数:
205
publicclassPandC{
publicstaticvoidmain(String[]args){
// Producerp=newProducer();
// Consumerc=newConsumer();
// newThread(p,"生产者").start();
// newThread(p,"生产者").start();
// newThread(c,"消费者").start();
// newThread(c,"消费者").start();
ne..
分类:
编程语言 时间:
2014-07-22 18:29:11
阅读次数:
223
package多线程;
publicclassPandC{
publicstaticvoidmain(String[]args){
// Producerp=newProducer();
// Consumerc=newConsumer();
// newThread(p,"生产者").start();
// newThread(p,"生产者").start();
// newThread(c,"消费者").start();
// newThread(c,"消费..
分类:
编程语言 时间:
2014-07-22 18:29:02
阅读次数:
227
package多线程;
importjava.util.concurrent.locks.Condition;
importjava.util.concurrent.locks.Lock;
importjava.util.concurrent.locks.ReentrantLock;
publicclassPandCnewLock{
publicstaticvoidmain(String[]args){
// Producerp=newProducer2();
// Consumerc=..
分类:
编程语言 时间:
2014-07-22 18:21:02
阅读次数:
288
1.程序框架分析:a)首先将mutex, condition, queue 封装成各自的类,方便对外提供接口函数,这里要注意 condition的封装,一个条件变量和一把锁是一起用的,因此在初始化 condition 对象的时候要用一个 mutex 对象去初始化,在pthread_cond_wait...
分类:
编程语言 时间:
2014-07-16 17:43:12
阅读次数:
203