SheduledThreadPoolExecutor 可以定时的执行任务,schedule()方法只能运行一次, scheduleAtFixedRate()方法可以每隔规则的时间重复执行任务
我们看下面的例子:
输出结果:
程序分析:
1、通过ScheduledThreadPoolExecutor线程池的scheduleAtFixedRate方法,可以定时重复执行,从输出看,bing输出了5次(在指定的时间内)
2、通过ScheduledThreadPoolExecutor线程池的schedule方法,可以只执行一次,从输出中看,我们进行了终止方法,在5秒后,并输出了data1和data2的结果
3、ScheduledThreadPoolExecutor 内部使用DelayWorkQueue,进行延迟执行
Java并发编程相关代码Github地址:
https://github.com/yuanzongyu/javathread