目录
一、阻塞队列和“生产者-消费者模型”之间的关系
| 1)什么是阻塞队列? |
| 队列是一种“先进先出”的数据结构,阻塞队列是一种带有阻塞功能、线程安全的队列。 当队列满时,继续入队列则会阻塞,直到队列不为满时,才会继续入队列。 当队列空时,继续出队列则会阻塞,直到队列不为空时,才会继续出队列。 |
| 2)什么是“生产者-消费者模型”? |
| “生产者-消费者模型”是一种经典的开发模型,是阻塞队列的典型应用场景。 “生产者-消费者模型”主要由生产者-容器(阻塞队列)-消费者构成。 |
| 3)阻塞队列在“生产者-消费者模型”中的作用 | |
| <1> | 阻塞队列可以让生产者和消费者之间解耦合。 使用阻塞队列后,生产者和消费者之间不再直接通信,而是通过阻塞队列进行沟通。 |
| <2> | 阻塞队列相当于生产者和消费者之间的缓冲区,可以平衡“生产速度”和“消费速度”。 |
图示演示“生产者-消费者模型”:

二、标准库提供了阻塞队列
| 1)标准库提供了哪些阻塞队列? |
| 在 Java 标准库中内置了阻塞队列 —— BlockingQueue 。 BlockingQueue 是一个接口,接口的实现类包括 ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue 等。 |
| 2)BlockingQueue 的常用方法 |
| 常用方法有: put() 方法,带阻塞功能,用于入队列。 take() 方法,带阻塞功能,用于出队列。 |
| BlockingQueue 也提供了 offer()、poll()、peek() 等方法,但这些方法没有阻塞功能。 |

最低0.47元/天 解锁文章
1182

被折叠的 条评论
为什么被折叠?



