我创建了一个scheduledExecutorService
,如下所示
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// do stuff
}
}, 0, 5, TimeUnit.SECONDS);
我想在 UI
或 JSP
中单击停止按钮时停止服务。非常感谢对此的任何帮助
最佳答案
看一下执行器的 shutdownNow()
方法。
exec.shutdownNow();
exec.awaitTermination();
它几乎可以满足您的需求。它不会立即停止线程(因为它不安全)。相反,它设置 isInterrupted() 标志,通知正在运行的线程应该停止。因此,您的 Runnable 必须不时检查该标志。当它发现标志已设置时,它应该从 run()
方法返回。
exec.awaitTermination();
正在等待,直到线程停止。在该行之后,您可以确定线程已停止执行。
关于java - 在 UI 中执行按钮操作时停止 ScheduledExecutorService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55284612/