线程池执行者在ThreadPoolExecutor的基础上给咱们提供了延时(delay)执行和周期执行的功能。性能会优于Timer包。java
ThreadPoolExecutor
Executor
ExecutorService
ScheduledExecutorService
AbstractExecutorServiceide
package calvin; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; public class TestScheduledThreadPoolExecutor { public static ScheduledThreadPoolExecutor executor = null; public static void main(String[] args){ System.out.println("test ScheduledThreadPoolExecutor"); executor = new ScheduledThreadPoolExecutor(5); myTask task = new myTask(); // 2秒后执行,执行后就中止 executor.schedule(task, 2l, TimeUnit.SECONDS); // 5秒后执行,执行完后每10秒再执行不会自动中止 executor.scheduleWithFixedDelay(task, 5l, 10, TimeUnit.SECONDS); } public static class myTask implements Runnable{ public AtomicInteger index = new AtomicInteger(); @Override public void run(){ System.out.println(System.currentTimeMillis() + "start working thread = "+Thread.currentThread().getName() + " index =" + index.incrementAndGet()); } } }