java中的线程同步问题

时间:2010-07-13 14:30:28

标签: java multithreading

全部,

我有一个线程Checker(扩展线程类),它继续将数字从1000减少到0,并在数字达到0时停止。此外,减法之间的休眠时间是10秒,因此它继续像1000,990一样, 980 .....等等。此计数永久存储,因此在减少后不会重置为1000。

我需要实施以下情况:

  1. 我有2个A和B类,有main()方法。他们在main()中启动此线程。现在应该是如果A类运行Checker线程,那么B类中的线程应该等待,直到A类完成它的执行。
  2. 即使A类中的Checker线程处于休眠状态,也不应启动B类线程。
  3. 仅当Class A的Checker Thread停止时,B类线程才会开始执行。
  4. 如何在A类和B类之间实现这种同步?

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

1 个答案:

答案 0 :(得分:0)

让他们分享single thread executorsubmit任务。

Executor executor = Executors.newSingleThreadExecutor();

以下是Executors#newSingleThreadExecutor() javadoc的相关摘录:

  

保证任务按顺序执行,任何给定时间都不会有多个任务处于活动状态。