import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class ScheduleThreadTest {
    public static void main(String[] args) {
        ScheduledThreadPoolExecutor scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(3);
        /**
         * 等待上一个任务执行完毕,再延迟2秒再执行下一个任务
         */
        scheduledThreadPoolExecutor.scheduleWithFixedDelay(new Runnable() {
            @Override
            public void run() {
                System.out.println(111);
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        },
                1, // 延迟1秒执行第一个任务
                2, // 第一个任务执行完毕,延迟2秒执行下一个任务
                TimeUnit.SECONDS);
        /**
         * 没隔 5 秒执行下一个任务
         */
        scheduledThreadPoolExecutor.scheduleAtFixedRate(new Runnable() {
                                                               @Override
                                                               public void run() {
                                                                   System.out.println(111);
                                                               }
                                                           },
                1, // 延迟1秒执行第一个任务
                5, // 每隔 5 秒产生一个新的任务
                TimeUnit.SECONDS);
    }
}

 

最后修改于 2020-06-04 21:55:09
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇