Concurrent Framework Timer

在1.5以後的java版本中使用ScheduledExecutorService替代了老舊的Timer.java

ScheduledExecutorService的實現類是ScheduledThreadPoolExecutor, 一個具有Schedule task功能的ThreadPoolExecutor.併發

ScheduledExecutorService.submit(..) execute(..) invokeAll(..) 等方法與ExecutorService徹底相同.spa

ScheduledExecutorService.schedule(Callable<T> callable, long delay, TimeUnit unit), 延遲delay*unit時間執行該線程.線程

ScheduledExecutorService.schedule(Runnable command, long delay, TimeUnit unit), 延遲delay*unit時間執行該線程.it

ScheduledExecutorService.scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit), 屢次執行該線程, 除非線程拋出Exception或cancelation/termination the executor, 不會併發執行, 延遲(initialDelay + period*(n-1))*unit時間屢次執行第n次, 若是一個線程執行時間超過period*unit則在執行完該線程以後馬上開始下一個線程.io

ScheduledExecutorService.scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)), 屢次執行該線程, 除非線程拋出Exception或cancelation/termination the executor, 不會併發執行, 延遲initialDelay*unit時間執行第一個線程, 以後每隔delay*unit時間執行下一個線程.class

相關文章
相關標籤/搜索