2010-07-13 67 views
2

HI所有,线程同步问题

我有一个螺纹检查器(延伸螺纹类),它不断减小从1000数字为0,并且当次数达到0。而且在减法之间的睡眠时间停止是10秒,因此它继续像1000,990,980 .....等等。此计数永久存储,因此在减少后不会重置为1000。

我需要实现以下情况:

  1. 我有2类A和具有main()方法B中。他们在main()中启动这个线程。现在应该像A类运行Checker线程,然后B类中的线程应该等待,直到A类完成其执行。
  2. 即使Class A中的Checker线程正在Sleeping,B类线程也不应启动。
  3. 仅当Class A的Checker Thread停止时,B类线程才会开始执行。

如何在类A和类B之间实现这种同步?

也从A类和B类开始检查线程是完全随机的。任何线程都可以随时启动。 如果来自A的检查器启动并且B正在运行,那么它应该等到B完全关闭或停止。反之亦然。

+1

而你的问题是......? – 2010-07-13 14:32:02

回答

0

让他们分享一个single thread executorsubmit的任务。

Executor executor = Executors.newSingleThreadExecutor(); 

这里的相关性从Executors#newSingleThreadExecutor() javadoc中的摘录:

任务是保证顺序地执行,并且不超过一个任务将是积极的,在任何给定的时间。