Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关机时线程自杀?正在停止java.util.Timer实例_Java_Multithreading - Fatal编程技术网

关机时线程自杀?正在停止java.util.Timer实例

关机时线程自杀?正在停止java.util.Timer实例,java,multithreading,Java,Multithreading,我有一个java.util.Timer以固定的间隔运行。我添加了一个运行时#addShutdownHook,当VM正常或异常结束时,它会关闭。但是,当main终止时,它会使VM保持活动状态,除非我坚持在main中执行System.exit有没有办法检查我是否是最后一个站着的线程,或者用其他方法来避免修改一个在完成时正常退出的主线程? 注意:我知道很多人认为java.util.Timer不受欢迎(事实并非如此),但除非您的替代方案能帮助我解决这个问题。。。 使用构造函数重载之一创建计时器,该重载

我有一个
java.util.Timer
以固定的间隔运行。我添加了一个
运行时#addShutdownHook
,当VM正常或异常结束时,它会关闭。但是,当
main
终止时,它会使VM保持活动状态,除非我坚持在
main
中执行
System.exit
有没有办法检查我是否是最后一个站着的
线程
,或者用其他方法来避免修改一个在完成时正常退出的
主线程?

注意:我知道很多人认为
java.util.Timer
不受欢迎(事实并非如此),但除非您的替代方案能帮助我解决这个问题。。。

使用构造函数重载之一创建计时器,该重载允许您指定是否使用守护进程线程:pass
true
in作为参数,以便它将在守护进程线程上运行,这不会阻止VM关闭