Java自带定时任务ScheduledThreadPoolExecutor实现定时器和延时加载功能

时间:2018-12-11
今天小编就为大家分享一篇关于Java自带定时任务ScheduledThreadPoolExecutor实现定时器和延时加载功能,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

java.util.concurrent.ScheduledThreadPoolExecutor 是JDK1 .6之后自带的包,功能强大,能实现定时器和延时加载的功能

各类功能和处理方面优于Timer

1、定时器:

  • ScheduledThreadPoolExecutor  有个scheduleAtFixedRate(command, initialDelay, period, unit) ;方法    
  • command: 执行的线程(可自己New一个)
  • initialDelay:初始化执行的延时时间
  • period: 时间间隔
  • unit : 时间类型(如TimeUnit.SECONDS: 秒的方式执行,TimeUnit.DAYS : 天数的方式执行)

具体代码:

 public static void main(String[] args) {
 stThread.scheduleAtFixedRate(new Runnable() {
  @Override
  public void run() {
  // TODO Auto-generated method stub
  System.out.println(new Date());
  }
 },
  20, 2, TimeUnit.SECONDS);
 }

2、延时处理

  • ScheduledThreadPoolExecutor  有个 schedule(callable, delay, unit) ; 方法
  • callable:回调方法
  • delay:延时时间
  • unit:时间类型,同定时器的unit一样

具体代码:

stThread.schedule((RolePrvlegeTask)SpringUtils.getBean("rolePrvlegeTask"), 1, TimeUnit.SECONDS);

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接