阻塞队列-SynchronousQueue

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();
    }
}
原文地址:https://www.cnblogs.com/xhyouyou/p/12465305.html