import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class TestScheduledExecutorService {
private ScheduledExecutorService scheduleExector = null;
public void doWork() {
scheduleExector = Executors.newScheduledThreadPool(2);
scheduleExector.scheduleAtFixedRate(new Runnable() {
public void run() {
System.out.println("每隔2秒钟打印一次");
}
}, 2, 2, TimeUnit.SECONDS);
scheduleExector.scheduleAtFixedRate(new Runnable() {
public void run() {
System.out.println("每隔3秒钟打印一次");
}
}, 3, 3, TimeUnit.SECONDS);
}
public static void main(String args[]) {
new TestScheduledExecutorService().doWork();
}
}
scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
- 创建并执行一个在给定初始延迟后首次启用的定期操作,后续操作具有给定的周期;也就是将在 initialDelay 后开始执行,然后在 initialDelay+period 后执行,接着在 initialDelay + 2 * period 后执行,依此类推。如果任务的任何一个执行遇到异常,则后续执行都会被取消。否则,只能通过执行程序的取消或终止方法来终止该任务。如果此任务的任何一个执行要花费比其周期更长的时间,则将推迟后续执行,但不会同时执行。
public interface ScheduledExecutorService extends ExecutorService
一个 ExecutorService
,可安排在给定的延迟后运行或定期执行的命令。