如何在完成设置时让线程告诉启动它的方法?

Ale*_*lex 1 java multithreading notify wait

我有一个启动线程的方法,我想让方法块直到线程完成其设置阶段,否则面临竞争条件.

我知道我想使用wait notify,但我不知道如何拥有监视器等等.

Jim*_*ris 5

如果只有起始线程需要等待,我通常使用Count down锁存器.

有一些例子,但如果你需要,我可以举出一个简单的例子.

或者,如果多个线程可能使用线程并且需要知道何时初始化,则可以使用屏障.

  • 具体来说,CountDownLatch的计数设置为1.父线程在子线程上调用start()然后在锁存器上调用await(),而子线程在完成初始化后只调用countDown().使用原始等待/通知也很容易,但CountDownLatch使代码中的意图清晰,并且没有您自己编写时可能会引入的错误. (3认同)