转自:java并发编程实战 5.3阻塞队列和生产者-消费者模式 BlockingQueue阻塞队列提供可阻塞的put和take方法,以及支持定时的offer和poll方法。如果队列已经满了,那么put方法将阻塞直到空间可用;如果队列为空,那么take方法将阻塞直到有元素可用。队列可以是有界的也可以是
分类:
编程语言 时间:
2016-03-07 22:33:03
阅读次数:
226
1、 /* 需求:设计4个线程对象,两个线程执行减操作,两个线程执行加操作。 类似于多个生产者和多个消费者的例子 */ import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; impor
分类:
编程语言 时间:
2016-03-06 19:07:38
阅读次数:
212
感觉大家对IT十八掌大数据的支持,今天的作业如下1.5辆汽车过山洞,依次经过山洞。每辆车通过山洞花费10秒,使用多线程实现。2.用多线程模拟蜜蜂和熊的关系。蜜蜂是生产者,熊是消费者。蜜蜂生产蜂蜜是累加的过程,熊吃蜂蜜是批量(满100吃掉)的过程。生产者和消费者之间使用..
分类:
编程语言 时间:
2016-03-04 22:47:03
阅读次数:
386
disruptor 用户封装自己的消费者,把消费者注入到消费者容器,消费者容器实现自动创建 缓存队列,生产者; 文中用到的 disruptor C#移植源代码 https://github.com/bingyang001/disruptor-net-3.3.0-alpha 作者博客 http://w
分类:
Web程序 时间:
2016-03-04 16:01:41
阅读次数:
237
使用阻塞队列代码要简单得多,不需要再单独考虑同步和线程间通信的问题 在并发编程中,一般推荐使用阻塞队列 public class BolckQuene_Pro_Con { private int queueSize = 10;//队列允许存放的最大数 private ArrayBlockingQue
分类:
其他好文 时间:
2016-03-01 17:18:52
阅读次数:
129
1单生产者单消费者 package example; class Resource{ private String name; private int num=1; private boolean flag=false; public synchronized void set(String nam
分类:
其他好文 时间:
2016-02-29 21:14:30
阅读次数:
253
进程同步 一组并发进程进行相互合作、相互等待,使得各进程按一定的顺序执行的过程称为进程间的同步。 进程同步与进程互斥 进程同步问题的关键在于生产者不需要获取信号量,消费者不需要释放信号量,所以信号量的初值设置为0。但是进程互斥问题中双方都需要获取和释放信号量,所以信号量的初值至少为1。 produc
分类:
其他好文 时间:
2016-02-28 20:00:03
阅读次数:
164
胶多不粘话多不甜,直接上代码: 生产者类: /** * Created by 51304 on 2016/2/28. */ public class P { private String lock; public P(String lock){ this.lock = lock; } public
分类:
编程语言 时间:
2016-02-28 12:19:28
阅读次数:
126
packagemainimport("fmt""math/rand""time")funcproduction(channelchan<-string){for{channel<-fmt.Sprintf("%v",rand.Float64())time.Sleep(time.Second*time.Duration(1))}}funccustomer(channel<-chanstring){for{message:=<-channelfmt.Println(message)}}fun..
分类:
其他好文 时间:
2016-02-26 10:38:14
阅读次数:
124