scheduleWithFixedDelay和scheduleAtFixedRate的区别
Posted 無昂博奥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scheduleWithFixedDelay和scheduleAtFixedRate的区别相关的知识,希望对你有一定的参考价值。
scheduleWithFixedDelay使用
public class MainDemo
public static int times = 0;
public static void main(String[] args)
ScheduledThreadPoolExecutor scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(1);
scheduledThreadPoolExecutor.scheduleWithFixedDelay(new Runnable()
@Override
public void run()
try
System.out.println( "开始执行时间" + System.currentTimeMillis());
Thread.sleep(4000);
catch (InterruptedException e)
e.printStackTrace();
System.out.println( "执行结束时间" + System.currentTimeMillis());
,0,3, TimeUnit.SECONDS);
开始执行时间1658308204447
执行结束时间1658308208448
开始执行时间1658308211450
执行结束时间1658308215456
开始执行时间1658308218458
执行结束时间1658308222459
开始执行时间1658308225461
执行结束时间1658308229462
开始执行时间1658308232462
执行结束时间1658308236463
开始执行时间1658308239463
执行结束时间1658308243466
开始执行时间1658308246467
执行结束时间1658308250467
开始执行时间1658308253470
scheduleAtFixedRate的使用
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class MainDemo
public static int times = 0;
public static void main(String[] args)
ScheduledThreadPoolExecutor scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(1);
scheduledThreadPoolExecutor.scheduleAtFixedRate(new Runnable()
@Override
public void run()
try
System.out.println( "开始执行时间" + System.currentTimeMillis());
Thread.sleep(4000);
catch (InterruptedException e)
e.printStackTrace();
System.out.println( "执行结束时间" + System.currentTimeMillis());
,0,3, TimeUnit.SECONDS);
总结
scheduleAtFixedRate函数是在函数体里的程序执行完毕之后,立即执行.
而scheduleWithFixedDelay是在函数体能的程序执行完成之后,再delay设置的时间后执行。
以上是关于scheduleWithFixedDelay和scheduleAtFixedRate的区别的主要内容,如果未能解决你的问题,请参考以下文章
scheduleAtFixedRate 与 scheduleWithFixedDelay
scheduleAtFixedRate和scheduleWithFixedDelay探究
Java定时线程实现:scheduleAtFixedRate 和 scheduleWithFixedDelay 的差别
Java定时线程实现:scheduleAtFixedRate 和 scheduleWithFixedDelay 的差别
Java定时线程实现:scheduleAtFixedRate 和 scheduleWithFixedDelay 的差别
ScheduledThreadPoolExecutor线程池scheduleAtFixedRate和scheduleWithFixedDelay的区别