1.基本的生产者消费者:
生产者完成生产之后通知消费者开始消费。
消费者消费完成之后通知生产者开始生产。
2.生产者消费者设计模式
生产者生产完成直接丢给同步队列。
消费者直接从同步队列获取并消费。
同步队列实现生产者与消费者的线程控制。
同步队列:
a.同一时刻只允许一个线程插入或移除元素。可以由不同的数据结构组成,基础功能相同。
b.与原先由生产者消费者直接相互控制不同,现在采用同队队列来对生产者消费者线程进行控制。简化了抽象,支持多生产者多消费者。
c.BlockingQueue支持阻塞和非阻塞两种类型方法,可以根据实际情况使用。
d.生产者与消费者共享同一个同步队列,是一根绳子上的。
优点:
a.解耦生产者消费者,让生产者只关心生产,消费者只关心消费。
b.生产者与消费者代码中不需要显示的同步,简化了生产者消费者的开发。