利用BlockingQueue实现生产者消费者
来源:互联网 发布:手机映射软件 编辑:程序博客网 时间:2024/05/22 05:00
- put(Object obj):把obj加到BlockingQueue里,如果BlockQueue没有空间,则调用此方法的线程被阻断直到BlockingQueue里面有空间再继续.
void put(E e) throws InterruptedException;
- take():取走BlockingQueue里排在首位的对象,若BlockingQueue为空,阻断进入等待状态直到Blocking有新的对象被加入为止
E take() throws InterruptedException;
- 其中:BlockingQueue 不接受null 元素。试图add、put 或offer 一个null 元素时,某些实现会抛出NullPointerException。
- 生产者消费者实现:
package thread;import java.util.HashMap;import java.util.Map;import java.util.concurrent.ArrayBlockingQueue;/** * 利用BlockingQueue实现生产者消费者 * @author Administrator * */public class Blockqueue { public static void main(String[] args) throws InterruptedException{ final ArrayBlockingQueue abq = new ArrayBlockingQueue(5); //生产者往里写 new Thread(){ @Override public void run() { for(int i=0;i<10;i++){ try { abq.put(i); System.out.println("生产:"+i); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); //消费者消费 Thread.sleep(2000); new Thread(){ @Override public void run() { for(int i=0;i<10;i++){ try { System.out.println("消费:"+abq.take()); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); }}
1 0
- 利用BlockingQueue实现生产者消费者
- Java利用BlockingQueue实现生产者和消费者模式
- 2、java多线程--利用BlockingQueue实现生产者消费者模型
- 生产者,消费者的BlockingQueue实现
- BlockingQueue实现生产者、消费者模式
- BlockingQueue实现生产者消费者模式
- Java多线程15:Queue、BlockingQueue以及利用BlockingQueue实现生产者/消费者模型
- Java多线程系列-Queue、BlockingQueue以及利用BlockingQueue实现生产者/消费者模型
- 基于BlockingQueue的生产者消费者模式实现
- Java实现生产者消费者模型:多线程+BlockingQueue
- 使用BlockingQueue实现生产者消费者模式
- 使用Java的BlockingQueue实现生产者-消费者
- Java使用BlockingQueue实现生产者消费者模式
- 使用Java的BlockingQueue实现生产者-消费者
- 使用Java的BlockingQueue实现生产者-消费者
- 生产者/消费者可以参考BlockingQueue实现
- 使用Java的BlockingQueue实现生产者-消费者
- 使用阻塞队列BlockingQueue实现生产者消费者
- php面试题之一——PHP核心技术(高级部分)
- 京东2017实习生招聘试题 方法调用
- Linux命令行与shell脚本(20)--实例:备份文件
- 接口回调
- C++ 符号常量
- 利用BlockingQueue实现生产者消费者
- 读取easyUI组件属性的属性值
- 797B
- 深度学习-目标检测综述
- Myeclipse的使用之hibernate
- SQL查询--查询所需表结构、数据
- jd-gui反编译成Java,删除每行注释
- 临时存储
- 一次完整的 HTTP 请求过程