生产者与消费者模型
生产者:生产数据的线程,这类的线程负责从用户端、客户端接收数据,然后把数据Push到存储中介。
消费者:负责消耗数据的线程,对生产者线程生产的数据进行(判断、筛选、使用、响应、存储)处理。
存储中介:也叫数据仓库,是生产者线程与消费者线程之间的数据缓冲区,用于平衡二者之间的生产速度与消耗速度不均衡的问题,通过缓冲区隔离生产者和消费者,与二者直连相比,避免相互等待,提高运行效率。
问题1:生产快于消费,缓冲区满,撑死。
解决方法:负责生产的线程通知负责消费的线程全速消费,然后进入休眠。
问题2:消费快于生产,缓冲区空,饿死。
解决方法:负责消费的线程通知负责生产的线程全速生产,然后进入休眠。