我阅读了其他帖子,但没有找到我正在寻找的确切答案,所以我希望有人能给出一些澄清。
我有一个将运行一段时间的程序。我有一些在后台运行的线程来执行各种任务,为了简单起见,让我们考虑 3 个线程。ThreadA
每 10 秒执行一次任务,其中ThreadB
每 30 秒做某事并且ThreadC
每 5 分钟做某事。
我不使用忙等待,而是让线程在指定的时间内休眠。
我的问题是关于彻底关闭。我有一个变量,每个线程也具有读取访问权限,因此它们可以看到用户何时启动程序退出。下次线程处于活动状态时,它们将退出循环并加入,一切都很好。但你可以看到ThreadC每5分钟才被唤醒一次。
我的问题是我可以在睡眠时间结束之前向睡眠线程发出信号唤醒并退出吗?如果这是不可能的,我是否需要重新编写代码才能使用wait()
and notify()
或者,还有更好的方法?
Thread.sleep
throws InterruptedException
如果线程在睡眠期间被中断。抓住它,检查你的旗帜。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)