1import java.util.concurrent.ArrayBlockingQueue; 2import java.util.concurrent.BlockingQueue; 3public class BlockingQueueTest { 4 public static void main(String[] args) { 5 final BlockingQueue queue = new ArrayBlockingQueue(3); 6 for(int i=0;i<2;i++){ 7 new Thread(){ 8 public void run(){ 9 while(true){ 10 try { 11 Thread.sleep((long)(Math.random()*1000)); 12 System.out.println(Thread.currentThread().getName() + "准备放数据!"); 13 queue.put(1); 14 System.out.println(Thread.currentThread().getName() + "已经放了数据," + 15 "队列目前有" + queue.size() + "个数据"); 16 } catch (InterruptedException e) { 17 e.printStackTrace(); 18 } 19 } 20 } 21 22 }.start(); 23 } 24 25 new Thread(){ 26 public void run(){ 27 while(true){ 28 try { 29 //将此处的睡眠时间分别改为100和1000,观察运行结果 30 Thread.sleep(1000); 31 System.out.println(Thread.currentThread().getName() + "准备取数据!"); 32 queue.take(); 33 System.out.println(Thread.currentThread().getName() + "已经取走数据," + 34 "队列目前有" + queue.size() + "个数据"); 35 } catch (InterruptedException e) { 36 e.printStackTrace(); 37 } 38 } 39 } 40 41 }.start(); 42 } 43}
BlockingQueue队列的使用
Stella981
2021-10-11
1173 0 0
点赞
收藏
评论区
加载中...