任务调度线程池
1、上代码:
public class ScheduledExecutorServiceDeom {
public static void main(String[] args) {
ScheduledExecutorService ses = Executors.newScheduledThreadPool(10);
ses.scheduleAtFixedRate(new Runnable() {
public void run() {
try {
Thread.sleep(1000);
System.out.println(System.currentTimeMillis()/1000);
} catch(Exception e) {
e.printStackTrace();
}
}
}, 0, 2, TimeUnit.SECONDS);
}
}
2、结果:
1508247401
1508247403
1508247405
1508247407
1508247409
1508247411
1508247413
1508247415
3、参看手册:
public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
创建一个线程池,可以调度命令在一个给定的延迟后运行,或周期性地执行。
参数
corePoolSize -线程的数量保持在游泳池里,即使他们是空闲的
结果
一个新创建的调度线程池
异常
如果 corePoolSize < 0 IllegalArgumentException
按照这种形式,可以创建以2秒为周期的任务调度。
Reference:
[1] 葛一鸣 郭超, 实战Java高并发程序设计,中国工信出版社 电子工业出版社, 2015:100-102