Java线程:新特征-阻塞栈
来源:互联网 发布:suse linux 网关 编辑:程序博客网 时间:2024/06/05 10:42
对于阻塞栈,与阻塞队列相似。不同点在于栈是“后入先出”的结构,每次操作的是栈顶,而队列是“先进先出”的结构,每次操作的是队列头。
这里要特别说明一点的是,阻塞栈是Java6的新特征。
Java为阻塞栈定义了接口:java.util.concurrent.BlockingDeque,其实现类也比较多,具体可以查看JavaAPI文档。
下面看一个简单例子:
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;
/**
* Java线程:新特征-阻塞栈
*
* @author leizhimin 2009-11-5 15:34:29
*/
publicclass Test {
publicstaticvoid main(String[] args)throws InterruptedException {
BlockingDeque bDeque = new LinkedBlockingDeque(20);
for (int i = 0; i < 30; i++) {
//将指定元素添加到此阻塞栈中,如果没有可用空间,将一直等待(如果有必要)。
bDeque.putFirst(i);
System.out.println("向阻塞栈中添加了元素:" + i);
}
System.out.println("程序到此运行结束,即将退出----");
}
}
输出结果:
向阻塞栈中添加了元素:0
向阻塞栈中添加了元素:1
向阻塞栈中添加了元素:2
向阻塞栈中添加了元素:3
向阻塞栈中添加了元素:4
向阻塞栈中添加了元素:5
向阻塞栈中添加了元素:6
向阻塞栈中添加了元素:7
向阻塞栈中添加了元素:8
向阻塞栈中添加了元素:9
向阻塞栈中添加了元素:10
向阻塞栈中添加了元素:11
向阻塞栈中添加了元素:12
向阻塞栈中添加了元素:13
向阻塞栈中添加了元素:14
向阻塞栈中添加了元素:15
向阻塞栈中添加了元素:16
向阻塞栈中添加了元素:17
向阻塞栈中添加了元素:18
向阻塞栈中添加了元素:19
从上面结果可以看到,程序并没结束,二是阻塞住了,原因是栈已经满了,后面追加元素的操作都被阻塞了。
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞栈
- Java线程:新特征-阻塞队列
- Java线程:新特征-阻塞队列
- Java线程:新特征-阻塞队列
- Java线程:新特征-阻塞队列
- Java线程:新特征-阻塞队列
- Java线程:新特征-阻塞队列
- Java线程:新特征-阻塞队列
- Java线程:新特征-阻塞队列
- Win7 64位自动更新IE10后打不开的解决方案
- 数组类型
- C++完成DPM
- MSI实现SILENT安装自动化
- Java线程:新特征-阻塞栈
- commons-logging和log4j
- 鼠标事件
- bzoj 2243 染色 树链剖分 好题!
- LA3887 最小生成树 枚举最小边
- django model filter 条件过滤
- Android基础系列----------- 资源适配
- Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)
- KVM Qemu libvirt