首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

BlockingQueue拥塞队列的例子

2012-10-06 
BlockingQueue阻塞队列的例子package com.testimport java.util.Randomimport java.util.concurrent.Arr

BlockingQueue阻塞队列的例子

package com.test;import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class BlockingQueueTest{/** * @param args */public static void main(String[] args){ExecutorService pool = Executors.newCachedThreadPool();final BlockingQueue bq = new ArrayBlockingQueue(3);for (int i = 0; i < 2; i++){pool.execute(new Runnable(){public void run(){try{while (true){Thread.sleep(new Random().nextInt(1000));System.out.println(Thread.currentThread().getName()+ "准备放数据");bq.put(1);System.out.println(Thread.currentThread().getName()+ "已经放完数据,目前队列有"+bq.size()+"个数据");}}catch (InterruptedException e){e.printStackTrace();}}});}pool.execute(new Runnable(){public void run(){try{while (true){Thread.sleep(100);System.out.println(Thread.currentThread().getName()+ "准备取数据");bq.take();System.out.println(Thread.currentThread().getName()+ "已经取走数据,目前队列有"+bq.size()+"个数据");}}catch (InterruptedException e){e.printStackTrace();}}});}}

热点排行