并发新特性—阻塞队列和阻塞栈
来源:互联网 发布:手机淘宝联盟几号提现 编辑:程序博客网 时间:2024/05/18 21:11
转载:http://blog.csdn.net/ns_code/article/details/17511147
阻塞队列
阻塞队列是Java 5并发新特性中的内容,阻塞队列的接口是Java.util.concurrent.BlockingQueue,它有多个实现类:ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue、SynchronousQueue等,用法大同小异,具体可查看JDK文档,这里简单举例看下ArrayBlockingQueue,它实现了一个有界队列,当队列满时,便会阻塞等待,直到有元素出队,后续的元素才可以被加入队列。
看下面的例子:
输出结果如下:
从执行结果中可以看出,由于队列中元素的数量限制在了20个,因此添加20个元素后,其他元素便在队列外阻塞等待,程序并没有终止。
如果队列已满后,我们将队首元素移出,并可以继续向阻塞队列中添加元素,修改代码如下:
执行结果如下: 从结果中可以看出,当添加了第20个元素后,我们从队首移出一个元素,这样便可以继续向队列中添加元素,之后每添加一个元素,便从将队首元素移除,这样程序便可以执行结束。
阻塞栈
阻塞栈与阻塞队列相似,只是它是java 6中加入的新特性,阻塞栈的接口java.util.concurrent.BlockingDeque也有很多实现类,使用方法也比较相似,具体查看JDK文档。
下面同样给出一个简单的例子:
执行结果如下:
程序依然会阻塞等待,我们改为如下代码:
执行结果如下:
从结果中可以看出,当添加了第20个元素后,我们从将栈顶元素移处,这样便可以继续向栈中添加元素,之后每添加一个元素,便将栈顶元素移出,这样程序便可以执行结束。
阅读全文
0 0
- 并发新特性—阻塞队列和阻塞栈
- 并发新特性—阻塞队列与阻塞栈
- 【Java并发编程】并发新特性—阻塞队列和阻塞栈(含代码)
- 【Java并发编程】:并发新特性—阻塞队列和阻塞栈(含代码)
- java并发编程(二十一)--并发新特性—阻塞队列和阻塞栈
- 第二十一篇:并发新特性—阻塞队列和阻塞栈(含代码)
- 【Java并发编程】之二十一:并发新特性—阻塞队列和阻塞栈(含代码)
- 【Java并发编程】之二十一:并发新特性—阻塞队列和阻塞栈(含代码)
- 【Java并发编程】之二十一:并发新特性—阻塞队列和阻塞栈(含代码)(r)
- 【Java并发编程】之二十一:并发新特性—阻塞队列和阻塞栈(含代码)
- Java并发编程之二十一:并发新特性—阻塞队列和阻塞栈(含代码)
- JAVA并发编程-阻塞队列和阻塞栈
- 阻塞队列和阻塞栈
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue
- 并发队列ConcurrentLinkedQueue和阻塞栈LinkedBlockingQueue用法和阻塞队列ArrayBlockingQueue
- 阻塞队列,阻塞栈
- java并发-阻塞队列
- ionic应用程序跳转其它网站地址实现(themeablebrowser)相当于WebView
- Python Challenge笔记
- struts2是单例的吗
- MMORPG服务器架构
- mysql DDL DML
- 并发新特性—阻塞队列和阻塞栈
- C头文件编写基本规则
- hdu-5532 Almost Sorted Array(最长单调不xx序列)
- 夜间模式
- typedef的学习 数组指针与指针数组的差异
- githubdesktop入门(一):入门及单人项目创建及删除
- 追踪 Netty 异常占用堆外内存的经验分享
- bzoj 4999: This Problem Is Too Simple! 树链剖分+线段树
- 基于CentOS7.3安装Zabbix3.2手记