Java中的生产者消费者问题

Posted 牧羊人的世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的生产者消费者问题相关的知识,希望对你有一定的参考价值。

Java中的生产者、消费者问题描述:

  生产者-消费者(producer-consumer)问题, 也称作有界缓冲区(bounded-buffer)问题, 两个进程共享一个公共的固定大小的缓冲区(仓库). 其中一个是生产者, 用于将产品放入仓库: 另外一个是消费者, 用于从仓库中取出产品消费. 问题出现在当仓库已经满了, 而此时生产者还想向其中放入一个新的产品的情形, 其解决方法是让生产者此时进行等待, 等待消费者从仓库中取走了一个或者多个产品后再去唤醒它. 同样地, 当仓库已经空了, 而消费者还想去仓库消费产品, 此时也可以让消费者进行等待, 等待生产者放入一个或者多个产品时再唤醒它.

生产者、消费者问题需明确以下信息:

  1、生产者仅仅在仓储未满时候生产, 仓满则停止生产.

  2、生产者在生产出可消费产品时候, 应该通知等待的消费者去消费.

  3、消费者仅仅在仓储有产品时候才能消费, 仓空则等待.

  4、消费者发现仓储没产品可消费时候会通知生产者生产.

Demo:


以上是关于Java中的生产者消费者问题的主要内容,如果未能解决你的问题,请参考以下文章

Java线程通信-生产者消费者问题

java实现生产者消费者问题

Java并发之:生产者消费者问题

线程生成器java中的消费者

java线程同步中没有信号量的生产者消费者问题

使用Java模拟消费者是如何消费rabbitMQ消息队列中的消息的