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();
    }
}

相关文章:

  • 2022-12-23
  • 2021-12-05
猜你喜欢
  • 2021-07-02
  • 2022-02-03
  • 2021-06-10
  • 2021-07-04
  • 2021-11-09
  • 2021-09-16
相关资源
相似解决方案