如何让我的线程程序打印特定输出

时间:2012-10-05 13:49:01

标签: java multithreading synchronization wait notify

我在处理同步java线程时遇到问题,应用wait和notify ..

我想知道如何在一个程序中实现这些,我可以交替打印答案..例如,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

谢谢你们。

3 个答案:

答案 0 :(得分:1)

您可以通过两种方式轻松完成此任务:

  1. 传递'打印令牌'使用两个信号量的线程之间:线程1打印,信号信号量A,等待信号量B然后循环。线程2等待信号量A,打印信号,信号量B和循环信号。

  2. 编写内嵌的单线程代码。

答案 1 :(得分:0)

不要使用等待和通知。使用同步块。

要深入解释Java Monitor的工作原理,包括代码示例,您可以访问:http://www.artima.com/insidejvm/ed2/threadsynch.html

答案 2 :(得分:0)

线程程序的全部目的是线程的异步操作。这就是你如何获得性能提升,因为不同的任务可以同时在不同的CPU /内核上工作,没有必须相互同步。为了强制进行这种同步,锁定步骤输出是按照定义强制线程执行非典型操作。

@ Martin的回答提供了让它发挥作用的替代方案。