Juc02_Synchronized、ReentrantLock实现生产者和消费者问题(一)

①. 生产者和消费者模式概述


①. 生产者消费者模式是一个十分经典的多线程协作的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。所谓生产消费者问题,实际上主要是包含了两类线程:

一类是生产者线程用于生产数据


一类是消费者线程用于消费数据


②. 为了耦合生产者和消费者的关系,通常会采用共享的数据区域,就像一个仓库

生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为


消费者只需要从共享数据区中获取数据,并不需要关心生产者的行为


Juc02_Synchronized、ReentrantLock实现生产者和消费者问题(一)


③. 线程四句口诀 掌握


在高内聚低耦合的前提下,线程 - >操作 - >资源类

[假如有一个空调,三个人去操作这个空调,高内聚低耦合是指空调有制热制冷的效果,它会把这两个抽取成一个方法,对外以接口的形式去暴露,提供给操作空调的人或线程使用]

判断|操作|唤醒 [ 生产消费中 ]

多线程交互中,必须要防止多线程的虚假唤醒,也即(判断使用while,不能使用if)

(Java多线程中的虚假唤醒和如何避免)

标志位



上一篇:java 四种 线程池


下一篇:Juc02_Synchronized、ReentrantLock实现生产者和消费者问题(三)