Java多线程-Executor框架:ScheduledThreadPoolExecutor

构造函数:

  • public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
    创建一个支持定时或周期性的执行任务的线程池,多数情况下可用来替代Timer类。

执行方法:

  • schedule(Callable/Runnable, long,TimeUnit)
    第一个参数:任务
    第二个参数:任务执行前等待的时间
    第三个参数:第二个参数的时间单位。
  • scheduleAtFixedRate(Runnable ,long ,long ,TimeUnit )
    第一个参数:周期性执行的任务,
    第二个参数:第一次执行前的等待的时间
    第三个参数:两个任务的启动时间的间隔
    第四个参数:时间单位
    注意:该方法有返回值ScheduledFuture
  • scheduleWithFixedDelay(Runnable ,long ,long ,TimeUnit )
    第一个参数:周期性执行的任务,
    第二个参数:第一次执行前的等待的时间
    第三个参数:两个任务的时间间隔
    第四个参数:时间单位
    注意:该方法有返回值ScheduledFuture

public static void main(String[] args){
    ScheduledExecutorService executor = Executors.newScheduledThreadPool(10);
    // 延迟5秒执行任务     
    executor.schedule(new Task(), 5, TimeUnit.SECONDS);       

    executor.shutdown();
    while(!executor.isTerminated()){};
}

public static class Task implements Runnable{
    @Override
    public void run()  {        
        //TODO.            
    }
}

ScheduledExecutorService executor = Executors.newScheduledThreadPool(5);
Task task=new Task(); 
ScheduledFuture<?> resultFuture=executor.scheduleAtFixedRate(task, 0, 2, TimeUnit.SECONDS);       

for(int i=0;i<10;i++){  
   System.out.println(
                 resultFuture.getDelay(TimeUnit.MILLISECONDS));
   // Thread.sleep(1000);
};
executor.shutdown();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值