首页 > 解决方案 > 在生产者/消费者模式中使用多个生产者和消费者对java中的字符串进行排序有什么好处?

问题描述

我们在课堂上学习了生产者/消费者模式,但仅以一个生产者和一个消费者为例。在我们的家庭作业中,我们被要求做以下事情:

编写一个生成随机字符串的程序,然后使用生产者/消费者模式按字母顺序对它们进行排序。创建 1000 个字符串并使用大小为 100 的有界队列。使用 100 个生产者和 10 个消费者。

谁能向我解释在这种情况下实现多个生产者和消费者而不是单个生产者和消费者的好处?我假设多个生产者可以生成多个随机字符串,但是多个消费者的设计目的是什么?要更快地从队列中删除字符串,然后将它们放入另一个数组进行排序?

谢谢你。

标签: javamultithreadingproducer-consumer

解决方案


根据教授的回复,我认为作业是要求我们按字母顺序对每个字符串进行排序,例如:"aagpqhtpqht" -> "aaghhppqqtt",而不是我理解的"puatn", "qupango", "agnqotu", "bowtn" -> "agnqotu", "bowtn", "puatn", "qupango"

所以我假设消费者的角色是一次从队列中取出一个字符串,然后对字符串进行排序。

在这种情况下,在这里使用多个消费者按字母顺序对字符串进行排序没有任何好处。它应该是一种使用多个生产者和消费者来实现生产者/消费者模式的实践。


推荐阅读