BlockingQueue的使用
来源:互联网 发布:利用python数据分析 编辑:程序博客网 时间:2024/05/20 23:03
package test;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.TimeUnit;public class BlockingQueueTest { public static void main(String[] args) throws InterruptedException { final BlockingQueue queue = new ArrayBlockingQueue(20); for (int i = 0; i < 20; i++) { System.out.println("i"+i); queue.put(i); } // for(int i=0;i<2;i++){ // new Thread("线程1"){ // public void run(){ // while(true){ // try { // Thread.sleep(100); // 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("线程2") { public void run() { boolean isActive = true; while (isActive) { try { // 将此处的睡眠时间分别改为100和1000,观察运行结果 Thread.sleep(1000); System.out.println(Thread.currentThread().getName() + "准备取数据!"); Integer out = (Integer) queue.poll(1, TimeUnit.MINUTES); if(out == null){ isActive = false; } System.out.println("取的次数" + out); System.out.println(Thread.currentThread().getName() + "已经取走数据," + "队列目前有" + queue.size() + "个数据"); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("线程退出"); } }.start(); }}
阅读全文
0 0
- 线程BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- BlockingQueue的使用
- java中BlockingQueue 的使用
- BlockingQueue的功能和使用
- SpringMVC 记录用户的操作日志
- 第五周 【项目5
- 如何在移动端调出纯数字键盘
- Eclipse常用快捷键
- 内存溢出和内存泄漏
- BlockingQueue的使用
- 面试_技术问题_mybatis
- solr异常:maxClauseCount is set to 1024
- EOSPlatform7.6补丁列表
- CentOS 7.0安装MariaDB
- Angular环境搭建
- 深入浅出Java 重定向和请求转发的区别
- NOIP2011 Day2
- NDK入门(一)