一、概述

1、介绍

  强烈建议读者看这篇之前,先了解队列相关知识,以及生产者与消费者模式

  concurrent 包中,BlockingQueue 很好的解决了多线程中,如何高效安全"传输"数据的问题。通过这些高效并且线程安全的队列类,为快速搭建高质量的多线程程序带来极大的便利。
  阻塞队列,首先它是一个队列(先进先出),通过一个共享的队列,可以使得数据从队列的一端输入,从另外一端输出。

聊聊并发(四)——阻塞队列-LMLPHP

  当队列是的,从队列中获取元素的操作将会被阻塞。
  当队列是的,从队列中添加元素的操作将会被阻塞。

  api文档:https://www.matools.com/api/java8

聊聊并发(四)——阻塞队列-LMLPHP

2、为什么需要阻塞队列?

  理由:需要结合生产者与消费者来说。
  好处就是不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为这一切BlockingQueue 都一手包办了。在 concurrent 包发布之前,多线程环境下,程序员必须自己控制这些细节,尤其还要兼顾效率和线程安全,这给程序带来不小的复杂度。

3、相关API

  BlockingQueue 核心方法

方法类型
11-13 11:23