1、阻塞队列-Synchronous是什么?
Synchronous阻塞队列是一个不存储元素的队列,即单个元素队列。
2、Synchronous阻塞队列代码验证
public class SynchronousQueueDemo {
public static void main(String[] args) {
BlockingQueue queue = new SynchronousQueue();
// 生产者线程进行put操作
new Thread(()->{
try {
System.out.println(Thread.currentThread().getName() + " put one");
queue.put("one");
System.out.println(Thread.currentThread().getName() + " put two");
queue.put("two");
System.out.println(Thread.currentThread().getName() + " put three");
queue.put("three");
} catch (InterruptedException e) {
e.printStackTrace();
}
}, "t1").start();
// 消费者线程进行take操作
new Thread(()->{
try {
TimeUnit.SECONDS.sleep(1);
System.out.println(Thread.currentThread().getName() + " take one");
queue.take();
TimeUnit.SECONDS.sleep(1);
System.out.println(Thread.currentThread().getName() + " take two");
queue.take();
TimeUnit.SECONDS.sleep(1);
System.out.println(Thread.currentThread().getName() + " take three");
queue.take();
} catch (InterruptedException e) {
e.printStackTrace();
}
}, "t2").start();
}
}