java多线程之阻塞队列BlockingQueue的简单应用
来源:互联网 发布:ssh 命令行带端口号 编辑:程序博客网 时间:2024/06/05 03:50
public class BlockingQueueTest {public static void main(String[] args) {final BlockingQueue 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();}}
输出如下:
Thread-1准备放数据!
Thread-1已经放了数据,队列目前有1个数据
Thread-1准备放数据!
Thread-1已经放了数据,队列目前有2个数据
Thread-0准备放数据!
Thread-0已经放了数据,队列目前有3个数据
Thread-2准备取数据!
Thread-2已经取走数据,队列目前有2个数据
Thread-0准备放数据!
Thread-0已经放了数据,队列目前有3个数据
Thread-1准备放数据!
Thread-0准备放数据!
Thread-2准备取数据!
Thread-2已经取走数据,队列目前有2个数据
Thread-1已经放了数据,队列目前有3个数据
Thread-1准备放数据!
Thread-2准备取数据!
Thread-2已经取走数据,队列目前有2个数据
Thread-0已经放了数据,队列目前有3个数据
Thread-0准备放数据!
Thread-2准备取数据!
Thread-2已经取走数据,队列目前有2个数据
Thread-1已经放了数据,队列目前有3个数据
Thread-1准备放数据!
Thread-2准备取数据!
Thread-2已经取走数据,队列目前有2个数据
Thread-0已经放了数据,队列目前有3个数据
Thread-0准备放数据!
Thread-2准备取数据!
Thread-1已经放了数据,队列目前有3个数据
Thread-2已经取走数据,队列目前有3个数据
Thread-1准备放数据!
Thread-2准备取数据!
Thread-2已经取走数据,队列目前有2个数据
Thread-0已经放了数据,队列目前有3个数据
0 0
- java多线程之阻塞队列BlockingQueue的简单应用
- Java多线程-阻塞队列BlockingQueue
- BlockingQueue 阻塞队列 -- Java 多线程
- java多线程-BlockingQueue(阻塞队列)
- Java多线程-BlockingQueue(阻塞队列)
- Java多线程与并发库高级应用之阻塞队列BlockingQueue
- Java阻塞队列之BlockingQueue
- java的阻塞队列blockingqueue
- 多线程之阻塞队列ArrayBlockingQueue,BlockingQueue
- java多线程:15、阻塞队列【BlockingQueue】
- Java多线程/并发26、阻塞队列BlockingQueue
- JAVA并发之BlockingQueue阻塞队列
- Java 阻塞队列 BlockingQueue
- java 阻塞队列BlockingQueue
- Java : BlockingQueue 阻塞队列
- JAVA阻塞队列BlockingQueue
- (八) Java多线程详解之阻塞队列BlockingQueue及队列优先级详解
- 多线程 - 阻塞队列blockingQueue用法
- 英语学习
- NSRunloop的简单认识
- 我们该用i++还是i--来进行循环?
- 如何设置通过PMU的gpio来唤醒系统
- 政府采购电子办公系统总结-思路篇
- java多线程之阻塞队列BlockingQueue的简单应用
- spring mvc 数据绑定 400错误
- Class API
- 自适应网站开发
- Camshift算法原理及其Opencv实现
- struts的titles框架
- NSArray和NSMutableArray的相关总结
- 编程思想之多线程与多进程(2)——线程优先级与线程安全
- 2015063002 - foreach不可以用于过滤元素