读取java.util.Timer的源代码时,我发现java.util.TimerTimerThreadTaskQueue实现

据说java.util.Timer可以被java.util.Timer.cancel()取消,

但是当我调用java.util.Timer.cancel()时,我发现Timer中的TimerThread仍在运行,

这对在线系统有问题吗?

如果可能的话,如何在TimerThread中停止java.util.Timer



TimerThread的源代码(jdk 7),我终于发现Timer.cancel()可以工作。

TimerThread等待TaskQueue,当Timer.cancel()调用时,TaskQueue通知TimerThread,如果`TaskQueue为EMPTY,则TimerThead应该最终退出...

感谢您的评论,很抱歉浪费您的时间。

最佳答案

计时器线程仍将运行。但是计时器线程将根据实现停止接受任何内容到队列中。

您只能通过timer类访问Timer(TimerThread)线程。 TimerThread被封装在Timer类中。在实现方面,他们已确保Timer停止接受对其队列的请求,但TimerThread不会因此停止。

关于java - 如何终止Timer中的TimerThread,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13985554/

10-11 20:53