【发布时间】:2012-10-05 13:49:00
【问题描述】:
我在处理同步 java 线程、应用等待和通知时遇到问题。
我想弄清楚如何在可以交替打印答案的程序中实现这些。例如,person1 将计算数字 1-5 以及 person2,输出应该是这样的。
person1 count 1
person2 count 1
person1 count 2
person2 count 2
person1 count 3
person2 count 3
person1 count 4
person2 count 4
person1 count 5
person2 count 5
谢谢大家。
【问题讨论】:
-
你不能这样做。 java调度程序有自己的算法来决定运行哪个线程。听起来你想要一个单线程循环。
-
您想让我们告诉您有关 Java 线程的所有信息吗?你想让我们为你写一个程序吗?你能说得更具体些吗?
-
在 Java 7 中,您可以为此使用
Phaser。在 Java 7 之前,最合适的可能是CountDownLatch。但是,如果这不仅仅是对一些真实并发场景的简化,那么就没有理由使用多线程。 -
Java 线程并不意味着做这样的事情。您可以使用锁来做到这一点,但是您必须非常小心不要造成死锁。就我个人而言,我会完全不同地实现这一点。
-
大家好,感谢您的回复。我不希望您编写整个程序,我只需要您对我应该做什么来实现该输出的想法。我很难理解 java 线程,但我会花更多时间来理解它。我刚接触java,我想学习。在你的帮助下,我知道我能做到。谢谢大家的回复。我会在我的进展中更新你。谢谢。
标签: java multithreading synchronization wait notify