任务调度线程池

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



原文地址:https://www.cnblogs.com/ryelqy/p/10104116.html