想必大家都很熟悉生产者-消费者队列,生产者负责添加元素到队列,如果队列已满则会进入阻塞状态直到有消费者拿走元素。相反,消费者负责从队列中拿走元素,如果队列为空则会进入阻塞状态直到有生产者添加元素到队列。BlockingQueue就是这么一个生产者-消费者队列。BlockingQueue是Queue的...
分类:
编程语言 时间:
2014-08-09 18:09:28
阅读次数:
255
前言:
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。
认识BlockingQueue
阻塞队列,顾名思义,首先它是一个队列,而一个...
分类:
其他好文 时间:
2014-08-08 18:13:36
阅读次数:
308
JDK5.0之前,用java实现生产者和消费者的唯一方式就是使用synchronized内置锁和wait/notify条件通知机制。JDK5.0之后提供了显示锁Lock和条件队列Condition,与内置锁和内置条件队列相对应,但是显示的锁和条件队列,功能更强大,更灵活。此外JDK5.0之后还提供了大量很有用的并发工具类,如BlockingQueue等,基于这些数据结构,能够方便、快速、高效的构建...
分类:
其他好文 时间:
2014-08-07 23:11:55
阅读次数:
450
atitit. java queue 队列体系and自定义基于数据库的队列总结o7t
1. 阻塞队列和非阻塞队列 1
2. java.util.Queue接口, 1
3. ConcurrentLinkedQueue 2
4. BlockingQueue阻塞队列 2
4.1. 1. ArrayBlockingQueue 3
4.2. 2. LinkedBlockingQueue 3...
分类:
数据库 时间:
2014-07-30 20:47:04
阅读次数:
510
atitit.架构设计---方法调用结果使用异常还是返回值
1. 应该返回BOOL类型还是异常 1
2. 最终会有四种状况,抛出异常、返回特殊值、阻塞、超时 1
3. 异常的优缺点点 1
4. java BlockingQueue的提示 2
5. 方案::两个都使用,一个api返回bool,一个throw 异常...
2
1. 应该返回BOOL类型还是异常
...
分类:
其他好文 时间:
2014-07-30 20:46:14
阅读次数:
214
《Java并发编程实践》一书6.3.5节CompletionService:Executor和BlockingQueue,有这样一段话:
"如果向Executor提交了一组计算任务,并且希望在计算完成后获得结果,那么可以保留与每个任务关联的Future,然后反复使用get方法,同时将参数timeout指定为0,从而通过轮询来判断任务是否完成。这种方法虽然可行,但却有些繁琐。幸运的是,还有一种...
分类:
其他好文 时间:
2014-07-28 00:19:49
阅读次数:
365
java.util.concurrent包: 1.Excutors类:通过这个类可获得多种线程池的实例Excutors.newSingleThreadExecutor():获得单线程的ExecutorService;Excutors.newFixedThreadPool(int nThreads):...
分类:
其他好文 时间:
2014-07-26 01:34:07
阅读次数:
339
来自:http://www.cnblogs.com/taven/category/475298.html 1 import java.util.concurrent.CountDownLatch; 2 import java.util.concurrent.ExecutorService; 3 im...
分类:
编程语言 时间:
2014-07-14 20:49:33
阅读次数:
298
简析SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue
三者都是blockingQueue.
LinkedBlockingQueue,ArrayBlockingQueue
有界,默认是Integer.Max;
SynchronousQueue没什么界不界的概念.之所以这么...
分类:
其他好文 时间:
2014-06-25 19:19:39
阅读次数:
397
转发:大海巨浪Java库本身就有多种线程安全的容器和同步工具,其中同步容器包括两部分:一个是Vector和Hashtable。另外还有JDK1.2中加入的同步包装类,这些类都是由Collections.synchronizedXXX工厂方法。同步容器都是线程安全的,但是对于复合操作,缺有些缺点:① ...
分类:
编程语言 时间:
2014-06-22 12:54:50
阅读次数:
319