首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生产者消费者终端

生产者消费者终端
EN

Stack Overflow用户
提问于 2013-03-22 00:49:27
回答 2查看 872关注 0票数 3

我目前正在研究并发编程模式。考虑在wikipedia上提出的使用信号量的具有有限缓冲区的生产者-消费者问题的解决方案。

如果在某个时刻,制片人说:这是我制作的最后一件作品,那该怎么办呢?我如何才能让程序终止呢?(消费者仍然会等待,直到它被告知缓冲区中有东西为止)。

同样,如果消费者说:我不想再消费了。如何才能通知生产者,使程序退出?(生产者正在等待有一个可用的位置来放置一些东西)。

EN

回答 2

Stack Overflow用户

发布于 2013-03-22 00:54:24

来自Java Concurrency in Practice Book 7.2.3

Another way to convince a producer consumer service to shut down is with a poison pill: a recognizable object placed on the queue that means "when you get this, stop."

通读本书的第七章Cancellation and Shutdown

票数 4
EN

Stack Overflow用户

发布于 2013-03-22 00:55:38

您可以让生产者通过在队列中放置有害消息来终止消费者,当消费者接收到该消息时,它会识别该消息是来自生产者的关闭,并相应地关闭自身。

在给定的场景中,从消费者到生产者的通信是不可能的,您将不得不创建另一个通信渠道,因为通信目前只是一种方式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15553411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档