我有大学任务。我必须用三个线程编写一个程序。第一个线程生成偶数。第二个线程产生奇数。最后一个总结了两个线程生成的奇数和偶数。
我是Java并发新手。我听说过生产者/消费者模型,其中单个生产者生产某种东西而消费者使用它。但在上面的场景我认为,有两个生产者 - 奇数发电机,甚至发电机和一个消费者。如果我接近它用生产者消费者模型来解决那么我是对的吗?或者还有其他技术可以解决这个问题吗?任何人都可以为此提一个好的示例/资源链接吗?谢谢。
答案 0 :(得分:2)
如果我用生产者消费者模型解决它,那么我是对的吗?
如果这是练习的目的,那么这是正确的方法。
或者还有其他技术可以解决这个问题吗?
你可以计算总和。你不需要多个线程甚至是循环。
public static long sumOfValuesUpTo(int n) {
return n * (n + 1L) / 2;
}
这更快更简单。找到一个更好的解决方案不是分配的重点,而是使用我假设的多个线程来练习。
有人可以为此提一个好的示例/资源链接吗?
答案 1 :(得分:0)
正如你所说,这是大学任务,你必须使用3个线程而不是你必须做的事情
最有可能的重点是让您了解进程间通信 - 请参阅wait()
和notify()
或Java 7中可用的更新锁定功能。虽然这只是基于有限信息的猜测你提供了。