当服务器代码嵌入到客户端进程中时,我们的应用程序同时在客户端服务器模式和独立模式下运行。在spring beans xml中,我有计划的任务,比如
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="link-to-server" method="heartbeat" fixed-rate="1000"/>
</task:scheduled-tasks>在独立模式下,应用程序不会退出,因为调度程序线程不是守护程序线程。我如何停止它们或使这些线程成为守护进程?
谢谢!
发布于 2011-08-11 19:16:23
不要让它们成为守护进程,这会使线程停止得太突然,因此可能会使您的进程处于不一致的状态。我相信一个标准的Spring上下文关闭,因此调度器,简单地interrupts所有正在运行的线程。因此,您应该在任务中轮询Thread.currentThread().isInterrupted以确定是否关闭。像Object.wait()这样的阻塞方法会在中断时抛出InterruptedException。
https://stackoverflow.com/questions/7024571
复制相似问题