您的位置:首页 > 产品设计 > UI/UE

java线程系列---BlockingQueue队列的用法

2012-07-20 17:52 417 查看
在一队列中,通过存放数据,然后取数据,无数据时,等待取数据,队列数据满了时,等待放数据

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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: