打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
新特征-阻塞栈(二十二)

对于阻塞栈,与阻塞队列相似。不同点在于栈是后入先出的结构,每次操作的是栈顶,而队列是先进先出的结构,每次操作的是队列头。

 

这里要特别说明一点的是,阻塞栈是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
*/

public class Test {
        
public static void 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

 

从上面结果可以看到,程序并没结束,二是阻塞住了,原因是栈已经满了,后面追加元素的操作都被阻塞了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java并发编程
Java线程新特征之同步
『互联网架构』软件架构
蓝桥杯Java课程学习——多线程(二)
Synchronized和java.util.concurrent.locks.Lock的区别
多线程和java.util.concurrent并发包总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服