以下是java6中文API对Exchanger的解释:
可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给 exchange 方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象。Exchanger 可能被视为 SynchronousQueue 的双向形式。Exchanger 可能在应用程序(比如遗传算法和管道设计)中很有用。
用法示例:以下是重点介绍的一个类,...
分类:
编程语言 时间:
2015-04-01 15:34:06
阅读次数:
372
可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给exchange方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象。Exchanger 可能被视为SynchronousQueue的双向形式。换句话说Exchanger提供的是一个交换服务,允许原子性的交换两个(多个)...
分类:
编程语言 时间:
2014-12-02 23:56:08
阅读次数:
216
Exchanger可以看做双向数据传输的SynchronousQueue,即没有生产者和消费者之分,任意两个线程都可以交换数据。在JDK5中Exchanger被设计成一个容量为1的容器,存放一个等待线程,直到有另外线程到来就会发生数据交换,然后清空容器,等到下一个到来的线程。从JDK6开始,Exch...
分类:
编程语言 时间:
2014-08-27 23:20:38
阅读次数:
270
SynchronousQueue是一种很特别的BlockingQueue,任何一个添加元素的操作都必须等到另外一个线程拿走元素才会结束。也就是SynchronousQueue本身不会存储任何元素,相当于生产者和消费者手递手直接交易。SynchronousQueue有一个fair选项,如果fair为t...
分类:
编程语言 时间:
2014-08-25 16:39:44
阅读次数:
278
阅读ArrayBlockingQueue源码,很容易知道有界阻塞队列的长度至少为1,也就是至少能缓存下一个数据。SynchronousQueue的javadoc文档提到A synchronous queue does not have any internal capacity, not even a capacity of one.也就说同步队列的容量是0,不会缓存数据。
长度为1的阻塞队列和...
分类:
其他好文 时间:
2014-08-19 20:56:35
阅读次数:
298
Java-SynchronousQueue(同步队列) 阻塞队列小记...
分类:
编程语言 时间:
2014-08-10 21:38:20
阅读次数:
327
简析SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue
三者都是blockingQueue.
LinkedBlockingQueue,ArrayBlockingQueue
有界,默认是Integer.Max;
SynchronousQueue没什么界不界的概念.之所以这么...
分类:
其他好文 时间:
2014-06-25 19:19:39
阅读次数:
397