阻塞队列-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() + "\t put one");
                queue.put("one");

                System.out.println(Thread.currentThread().getName() + "\t put two");
                queue.put("two");

                System.out.println(Thread.currentThread().getName() + "\t 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() + "\t take one");
                queue.take();

                TimeUnit.SECONDS.sleep(1);
                System.out.println(Thread.currentThread().getName() + "\t take two");
                queue.take();

                TimeUnit.SECONDS.sleep(1);
                System.out.println(Thread.currentThread().getName() + "\t take three");
                queue.take();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }, "t2").start();
    }
}
posted @ 2019-09-10 01:43  要好好吃饭  阅读(154)  评论(0编辑  收藏  举报