简介
从字面意思就可以先稍微理解一下这个模式就是生产者生产多少,消费者就消费多少消费者消费得太多,那么生产者就应该要多生产一些那么这里就有一个阈值也就叫缓存区,就是消费到一个什么样的程度的时候,生产者就要生产了
网上面大多都是用wait-notify,这样堵塞的方式来举例生产者-消费者模式
消费者消费到了阈值,就wait阻塞消费者,notify唤醒生产者去生产生产者生产好了就wait阻塞生产者,再notify唤醒消费者这样来举例子
Java中有一个很明显的生产者-消费者模式
线程池 -> 生产者-消费者模式
线程池先定义一个阈值 -> 缓冲区,就是工作队列这个参数我们的线程就作为消费者,线程池作为生产者线程太多了,达到了超过了这个工作队列定义的这个阈值线程池就需要多创建线程,来满足我们对线程的需求
线程池
线程池先创建10个线程,定义一个工作队列为5作为阈值 -> 缓冲区我们要使用的线程等于12的时候,10个线程会正常执行多出来的2个任务,会加入到工作队列中当任务要使用的线程为16的时候,工作队列最多放下5个,已经放不下了线程池作为生产者就需要多创建一个线程出来,供任务使用



