生产者-消费者模式主要用于多线程协作,在该模式中通常有两类线程:若干个生产者线程和若干个消费者线程,生产者线程负责提交用户请求,消费者线程负责处理用户请求,两者直接通过共享内存缓冲区进行通信。
生产者-消费者模式的优点:
- 解藕
- 支持并发
- 解决忙闲不均
生产者-消费者实现的几种方式:
一、synchronized、wait和notify
wait()
/ nofity()
方法是Object
里面的两个方法,所有Object
的子类都可以使用这两个方法。
代码示例:
对象的监视器对锁对象的锁定(也就是代码中的lock对象),注意是调用锁对象的wait() / nofity()方法。
二、lock和condition的await、signalAll
三、BlockingQueue