可以通过调用executors
类的static newscheduledthreadpool()
方法获得一个调度的线程池。
语法
executorservice executor = executors.newscheduledthreadpool(1);
以下testthread
程序显示了基于线程的环境中newscheduledthreadpool()
方法的使用。
import java.util.concurrent.executors;
import java.util.concurrent.scheduledexecutorservice;
import java.util.concurrent.scheduledfuture;
import java.util.concurrent.timeunit;
public class testthread {
public static void main(final string[] arguments) throws interruptedexception {
final scheduledexecutorservice scheduler = executors.newscheduledthreadpool(1);
final scheduledfuture<?> beephandler =
scheduler.scheduleatfixedrate(new beeptask(), 2, 2, timeunit.seconds);
scheduler.schedule(new runnable() {
@override
public void run() {
beephandler.cancel(true);'
scheduler.shutdown();
}
}, 10, timeunit.seconds);
}
static class beeptask implements runnable {
public void run() {
system.out.println("beep");
}
}
}
这将产生以下结果 -
beep
beep
beep
beep
beep