转自:http://www.xiaoyaochong.net/wordpress/?p=354
TransferQueue是Java7新加入的一种线程安全的队列,实现了BockingQueue,也就时说这是一个特殊的阻塞队列。TransferQueue目前只有一个实现----LinkedTransferQueue,这是列表结构,意味着它是无边界的Queue。
一般的队列在未满的情况下往队列中存放元素是不会发生阻塞的,而一般的LinkedBlockingQueue又是一个无边界队列,所以在存放元素不会发生阻塞。为了满足无边界队列存放元素的阻塞需求,TransferQueue就应运而生,在调用tranfer(...)方法存放元素时将发生阻塞,知道有外界要消费tranfer(...)所存放的元素,也就是说如果tranfer(...)的元素之前还有别的元素,那tranfer(...)依旧会阻塞,知道它被消费为止。
实例如下:
@Test public void testTansferQueue() throws InterruptedException { final TransferQueue<String> transferQueue = new LinkedTransferQueue<String>(); ExecutorService executorService = Executors.newCachedThreadPool(); executorService.execute(new Runnable() { public void run() { try { // 此处阻塞,等待take(),poll()的发生。 transferQueue.transfer("test"); System.out.println("子线程完成传递."); } catch (InterruptedException e) {} } }); // 此处阻塞,等待trankser(当然可以是别的插入元素的方法)的发生 String test = transferQueue.take(); System.out.printf("主线程完成获取 %s.\n", test); Thread.sleep(1000); }
输入结果
主线程完成获取 test.
子线程完成传递.
子线程完成传递.
相关推荐
Java很诱人,但对于刚跨入Java门槛的初学者来说,编译并运行一个无比简单的Java程序简直就是一个恶梦。...笔者也经历过这个无比痛苦的阶段,本文以实例的方式,逐一解决在编译过程中所出现的各种设置问题。
java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象...
Java 2 入门与实例教程.rar
Java 2 入门与实例教程pdf,
java源码 java ee基础入门实例 .
题名 Java 2入门与实例教程 编号[ISBN] 7-113-05056-5 作者 孙燕主编 出版者 中国铁道出版社
java通信socket入门实例,一个完整的socket通信的demo,根据网上实例改写的
java入门实例
Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门教程(代码)Java实例教程,入门...
180个JAVA简单实例,还是对初学者有帮助的
220个JAVA初学者实例 对于刚接触java的帮助很大
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,...
很好的JAVA教程,java 2 入门与实例教程,高手入门到精通.JAVA教程
Java WebService入门实例
详细java连接timesten数据库入门实例文档,包括java连接timesten内存数据库所需的所有jar(包括各种版本)
本实例参考网上代码:http://www.ibm.com/developerworks/cn/java/j-javadev2-24/ 通过Jest和Junit单元测试的方法创建索引和检索 第一步:启动一个elasticsearch服务,bin目录下的elasticsearch.bat 第二步:建索引,...
java flex入门实例 MyEclipse7+flex bulider 3+ blazeds 整合的一个简单的实例。
Java 2 入门与实例教程,PDG格式!!!!
Java 入门 实例 源代码,十分经典的实例,内含Class和Java源代码
Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例...