java多线程:15、阻塞队列【BlockingQueue】
来源:互联网 发布:win7 数据恢复 编辑:程序博客网 时间:2024/06/06 02:43
当队列为空时取数据的线程堵塞,当队列满时放数据的新车堵塞
import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.Exchanger;/** *阻塞队列 */public class ThreadTest2 { public static void main(String[] args) { final BlockingQueue<Integer> bq=new ArrayBlockingQueue<>(3); for(int i=0;i<2;i++){ //放数据线程 new Thread(new Runnable(){ @Override public void run() { while(true){ int data=new Random().nextInt(5); try { //当队列满时线程堵塞 Thread.sleep(data); System.out.println(Thread.currentThread().getName()+"开始放数据"); bq.put(data); System.out.println(Thread.currentThread().getName()+"放完数据"); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }).start(); } //取数据线程 new Thread(new Runnable(){ @Override public void run() { while(true){ try { Thread.sleep(new Random().nextInt(5)*1000); System.out.println(Thread.currentThread().getName()+"开始取数据"); //当队列为空时线程阻塞 int data=bq.take(); System.out.println(Thread.currentThread().getName()+"取到数据:"+data); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }).start(); }}
0 0
- java多线程:15、阻塞队列【BlockingQueue】
- Java多线程-阻塞队列BlockingQueue
- BlockingQueue 阻塞队列 -- Java 多线程
- java多线程-BlockingQueue(阻塞队列)
- Java多线程-BlockingQueue(阻塞队列)
- Java多线程/并发26、阻塞队列BlockingQueue
- Java 阻塞队列 BlockingQueue
- java 阻塞队列BlockingQueue
- Java : BlockingQueue 阻塞队列
- JAVA阻塞队列BlockingQueue
- 多线程 - 阻塞队列blockingQueue用法
- 多线程中的BlockingQueue(阻塞队列)
- java多线程之阻塞队列BlockingQueue的简单应用
- java多线程(二)可阻塞队列BlockingQueue
- java多线程 队列 BlockingQueue
- Java线程:阻塞队列BlockingQueue
- java中的阻塞队列BlockingQueue
- java中的阻塞队列BlockingQueue
- square869120Contest #4 B.Buildings are Colorful!【二进制枚举】
- 常用批处理内部命令使用详解
- Java垃圾回收机制
- 删除链表中重复的结点
- mysql主主复制配置
- java多线程:15、阻塞队列【BlockingQueue】
- decimalformat
- rapidxml 文件读写、增加、删除、编辑节点
- SPOJ 2829 TLE
- intellij idea: Error configuring listener org.springframework.web.context.ContextLoaderListener
- 简单Node.js搭建本地站点
- Miracast与Wi-Fi Direct技术简介
- Spring注解 @Component、@Controller、@Service、@Repository
- Java开发环境的配置(Android/Java开发的第一步)