java - 在生产者/消费者模式中使用多个生产者和消费者对java中的字符串进行排序有什么好处?

标签 java multithreading producer-consumer

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

Write a program that generates random strings, then sorts them alphabetically using the producer/consumer pattern. Create 1000 strings and use a bounded queue of size 100. Use 100 producers and 10 consumers.

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

谢谢。

最佳答案

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

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

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

关于java - 在生产者/消费者模式中使用多个生产者和消费者对java中的字符串进行排序有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61294935/

相关文章:

java - 如何检查服务器是否已启动超过 15 分钟?

java - 随机生成器错误

java - @Component 在 Spring 测试中未被读取

c# - Join() Lock() 之间的根本区别

java - Parquet 文件可选字段不存在

java - 如何在spring webapp中创建后台进程?

java - 为什么连接到 main() 线程的守护线程在 main() 线程执行结束时没有死掉?

c - 生产者-消费者队列中出现奇怪的死锁

c# - 如何等待 worker 清空阻塞队列

java - 多线程访问同一个文本文件