package com.itjava.interview;
import java.util.ArrayList;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
/**
- 1 队列
- 2 阻塞队列
-
2.1 阻塞队列有没有好的一面 比如餐厅吃饭
-
2.2 不得不阻塞,如何管理
*/
public class BlockingQueueDemo {
public static void main(String[] args) throws Exception {
ArrayList<String> list = new ArrayList<>();
ArrayBlockingQueue<String> blockingQueue = new ArrayBlockingQueue<>(3); //设置队列容量
/* System.out.println(blockingQueue.add("a"));
System.out.println(blockingQueue.add("b"));
System.out.println(blockingQueue.add("c")); //超过元素边界立马异常
System.out.println(blockingQueue.element()); //检查队首元素
//移除
System.out.println(blockingQueue.remove());
System.out.println(blockingQueue.remove());
System.out.println(blockingQueue.remove());*/
/* System.out.println(blockingQueue.offer("a"));
System.out.println(blockingQueue.offer("a"));
System.out.println(blockingQueue.offer("a"));
System.out.println(blockingQueue.offer("x")); //超出,返回Boolean*/
/* System.out.println(blockingQueue.peek());
System.out.println(blockingQueue.poll());
System.out.println(blockingQueue.poll());
System.out.println(blockingQueue.poll());
System.out.println(blockingQueue.poll()); //超出,返回null*/
// blockingQueue.put(“a”);
// blockingQueue.put(“a”);
// blockingQueue.put(“a”);
// System.out.println("==============");
// blockingQueue.put(“x”); //阻塞,
// blockingQueue.take();
// blockingQueue.take();
// blockingQueue.take();
// blockingQueue.take();
System.out.println(blockingQueue.offer("a", 2, TimeUnit.SECONDS));
System.out.println(blockingQueue.offer("a", 2, TimeUnit.SECONDS));
System.out.println(blockingQueue.offer("a", 2, TimeUnit.SECONDS));
System.out.println(blockingQueue.offer("a", 2, TimeUnit.SECONDS)); //阻塞2秒
}
}