package src.main.java.com.qqjx.thread;/*
* @Auther wangpeng
* @Date 2021/2/1
*/import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.TimeUnit;publicclassT06_ArrayBlockingQueue{static BlockingQueue<String> strs =newArrayBlockingQueue<>(10);static Random r =newRandom();publicstaticvoidmain(String[] args)throws InterruptedException {for(int i =0; i <10; i++){
strs.put("a"+ i);}//strs.put("aaa"); //满了就会等待,程序阻塞//strs.add("aaa");//strs.offer("aaa");
strs.offer("aaa",1, TimeUnit.SECONDS);
System.out.println(strs);}}
put 程序阻塞
add 抛异常
Exception in thread "main" java.lang.IllegalStateException: Queue full
at java.util.AbstractQueue.add(AbstractQueue.java:98)
at java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:312)
at src.main.java.com.qqjx.thread.T06_ArrayBlockingQueue.main(T06_ArrayBlockingQueue.java:25)