5

执行器通常用于(短期)任务,但是处理长期运行的任务的最佳方法是什么,例如应该在应用程序的整个生命周期中运行的任务?

假设我有一个应用程序,其中运行在单独线程上的任务每 X 秒轮询一次目录以进行更改。除非应用程序退出,否则此任务不应退出轮询。我如何开始和管理这个?

new Thread(theLongRunningTask).start()会有这么糟糕的选择吗?

4

1 回答 1

5

这也是 Executors 框架的一个用例,特别是scheduleAtFixedRate。当应用程序完成时,请注意挂在上面的线程。您可以使用ThreadFactory制作守护线程的自定义。或者,如果您想要更简单的东西,请使用Timer API。您可以Timer使用布尔参数构造 a ,意思是“使用守护线程”。您还可以在应用程序结束时显式关闭执行器服务。

于 2012-05-14T11:44:26.953 回答