java - 在生产者/消费者模式中使用多个生产者和消费者对java中的字符串进行排序有什么好处?
问题描述
我们在课堂上学习了生产者/消费者模式,但仅以一个生产者和一个消费者为例。在我们的家庭作业中,我们被要求做以下事情:
编写一个生成随机字符串的程序,然后使用生产者/消费者模式按字母顺序对它们进行排序。创建 1000 个字符串并使用大小为 100 的有界队列。使用 100 个生产者和 10 个消费者。
谁能向我解释在这种情况下实现多个生产者和消费者而不是单个生产者和消费者的好处?我假设多个生产者可以生成多个随机字符串,但是多个消费者的设计目的是什么?要更快地从队列中删除字符串,然后将它们放入另一个数组进行排序?
谢谢你。
解决方案
根据教授的回复,我认为作业是要求我们按字母顺序对每个字符串进行排序,例如:"aagpqhtpqht" -> "aaghhppqqtt"
,而不是我理解的"puatn", "qupango", "agnqotu", "bowtn" -> "agnqotu", "bowtn", "puatn", "qupango"
。
所以我假设消费者的角色是一次从队列中取出一个字符串,然后对字符串进行排序。
在这种情况下,在这里使用多个消费者按字母顺序对字符串进行排序没有任何好处。它应该是一种使用多个生产者和消费者来实现生产者/消费者模式的实践。
推荐阅读
- python - debian/ubuntu python /bin/python3
- python - 如何为 json.dump() 添加唯一 ID
- javascript - 在 jest mocking 中指定函数参数
- javascript - 从选择列表中打开 URL 并在提交时传递所有变量
- r - 为什么 add_footnote 不能在 r-markdown pdf 中使用 kableextra?
- sql - 如何在配置单元表中为所有列收集具有计数的唯一值?
- javascript - 将文本发送到带引号的节点时出错``
- list - Vue.js,如何通过函数获取嵌套 json 文件的经纬度列表?
- jenkins-pipeline - 将 dotnet nuget 包推送到 antifactory
- node.js - 如果不存在,Mongoose 创建多个文档