Jam*_*mes 4 java scheduled-tasks timertask
我想让一个线程维护以不同间隔安排的多个任务的责任。我想从调度程序中添加和删除任务。有没有什么图书馆可以帮我这个忙。如果没有,我会自己编写代码,只是不想重新发明轮子。
对于后台,我想向我的应用程序添加警报,该警报是由一个线程控制的,应用程序的其余部分可以在其中添加/删除计划任务。我可以使用多个TimerTask或编写我自己的单线程调度程序,但是如果有更好的选择,我不想忽略它。
詹姆士
如果您需要开箱即用的JDK 1.5或更高版本中的可用功能,是否已查看ScheduledExecutorService?
http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ScheduledExecutorService.html
您可以使用以下工厂方法创建其中一个,并由单个线程支持:
还有一个替代的工厂方法,该方法接受ThreadFactory作为参数。这使您有机会自定义将在ScheduledExecutorService内部运行的线程。例如,您可以调用Thread.setName为线程赋予一个更有意义的名称。这对于调试应用程序非常有帮助。生成完整的线程转储时,您将看到自定义名称附加到线程上,而不是JVM自动附加的通用名称。
根据需要,调用Thread.setDaemon(true)也可能是合适的,这样该线程才不会阻止JVM关闭。
此外,最佳做法是在调用完ExecutorService后,通过调用ExecutorService.shutdown或ExecutorService.shutdownNow对其进行清理。如果没有保证关闭的调用(例如在finally块中),则有可能在应用程序中引入线程泄漏错误。从您描述的用法来看,这似乎不太可能会咬您,但是当我向某人推荐使用ExecutorService的建议时,我总是想强调一下。JavaDocs很容易错过这一点。
| 归档时间: |
|
| 查看次数: |
3688 次 |
| 最近记录: |