启动了几个工作线程,需要通知他们停止.由于某些线程在下一轮工作之前会休眠一段时间,因此需要一种即使在睡觉时也能通知它们的方法.
如果是Windows编程,我可以使用Event和wait函数.在Java中我通过使用CountDownLatch对象来做到这一点,该对象的计数为1.它工作但感觉不优雅,特别是我必须检查计数值以查看是否需要退出:
run(){
while(countDownLatch.count()>0){
//working
// ...
countDownLatch.wait(60,TimeUnit.SECONDS);
}
}
Run Code Online (Sandbox Code Playgroud)
信号量是另一种选择,但也感觉不对.我想知道有没有更好的方法呢?谢谢.
java ×1