【Concurrency-ScheduledExecutorService】


简介

线程池执行者在ThreadPoolExecutor的基础上给咱们提供了延时(delay)执行和周期执行的功能。性能会优于Timer包。java

继承结构

结构

参考:

ThreadPoolExecutor
Executor
ExecutorService
ScheduledExecutorService
AbstractExecutorServiceide

DEMO

package calvin;

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


public class TestScheduledThreadPoolExecutor {
    public static ScheduledThreadPoolExecutor executor = null;
    
    public static void main(String[] args){
        System.out.println("test ScheduledThreadPoolExecutor");
        executor = new ScheduledThreadPoolExecutor(5);
        myTask task = new myTask();
        // 2秒后执行,执行后就中止
        executor.schedule(task, 2l, TimeUnit.SECONDS);
        // 5秒后执行,执行完后每10秒再执行不会自动中止
        executor.scheduleWithFixedDelay(task, 5l, 10, TimeUnit.SECONDS);
        
    }
    
    public static class myTask implements Runnable{
        public AtomicInteger index = new AtomicInteger();
        @Override
        public void run(){
            System.out.println(System.currentTimeMillis() + "start working  thread = "+Thread.currentThread().getName() + " index =" + index.incrementAndGet());
        }
        
    }
}

小结

  1. 对于Executor对象来讲他的task执行顺序是根据FIFO原则来运行的
  2. 给咱们提供了定时执行任务的功能
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息