阻塞队列ArrayBlockingQueue
来源:互联网 发布:修改ssh命令默认端口 编辑:程序博客网 时间:2024/05/30 23:26
队列包含固定长度队列和不固定长度队列
ArrayBlockingQueue
固定长度的阻塞队列 只有put()和take()方法才具有阻塞功能
代码
package mutithread.blockingqueue;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;public class BlockingQueueTest { public static void main(String[] args) { final BlockingQueue<Integer> queue = new ArrayBlockingQueue<>(3); for (int i = 0; i < 2; i++) { new Thread() { public void run() { while (true) { try { Thread.sleep((long) (Math.random() * 1000)); System.out.println(Thread.currentThread().getName() + "准备放数据!"); queue.put(1); System.out.println(Thread.currentThread().getName() + "已经放了数据," + "队列目前有" + queue.size() + "个数据"); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } new Thread() { public void run() { while (true) { try { // 将此处的睡眠时间分别改为100和1000,观察运行结果 Thread.sleep(1000); System.out.println(Thread.currentThread().getName() + "准备取数据!"); queue.take(); System.out.println(Thread.currentThread().getName() + "已经取走数据," + "队列目前有" + queue.size() + "个数据"); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); }}
利用两个具有1空间的队列可以实现同步通知的功能
阻塞队列与Semaphore有些相似, 但也不同, 阻塞队列是一方存数据, 另一方释放数据, Semaphore通常则是由同一方设置和释放信号量
阅读全文
0 0
- 阻塞队列使用---ArrayBlockingQueue
- JAVA 阻塞队列 ArrayBlockingQueue
- 阻塞队列之ArrayBlockingQueue
- 阻塞队列ArrayBlockingQueue说明
- 阻塞队列(ArrayBlockingQueue)
- 数组阻塞队列 ArrayBlockingQueue
- 阻塞队列之ArrayBlockingQueue
- 阻塞队列ArrayBlockingQueue
- 数组阻塞队列 ArrayBlockingQueue
- 多线程Demo-ArrayBlockingQueue阻塞队列
- JAVA阻塞队列之ArrayBlockingQueue
- 二 : ArrayBlockingQueue 数组阻塞队列
- 可阻塞的队列——ArrayBlockingQueue
- Java5 多线程(八)-- ArrayBlockingQueue阻塞队列
- Java中的阻塞队列ArrayBlockingQueue的使用
- 多线程之阻塞队列ArrayBlockingQueue,BlockingQueue
- ArrayBlockingQueue阻塞队列的使用示例
- 一心多用多线程-阻塞队列(1)-ArrayBlockingQueue
- ShareSDK使用中出现,WBMFPRSA闪退问题
- 【ASP.NET】--静态网页/动态HTML/动态网页/伪静态网页
- (无监督学习&&视频预测)所读论文[2]:Generating Videos with Scene Dynamics
- oracle 用户下建表进行加密(redact)实验
- SDN原理解析-转控分离的SDN架构—学习笔记一
- 阻塞队列ArrayBlockingQueue
- python 文件目录操作
- 解决iscroll5的上拉下拉的回弹问题
- python多进程、多线程详解
- 判断质数
- 读写锁和互斥锁的区别
- SIP交互流程及路由机制
- java实现顺序栈
- 浅谈基于反射的EventBus