您现在的位置是:首页 >

JDK5 java.util.concurrent 线程池[2]

火烧 2021-06-15 07:02:26 1054
JDK5 java.util.co curre t 线程池[2] 需要注意的是线程池必须使用 hutdow 来显式关闭 否则主线程就无法退出 hutdow 也不会阻塞主线程 许多长时间运行的应用有时候
JDK5 java.util.concurrent 线程池[2]

JDK5 java.util.concurrent 线程池[2]  

    需要注意的是线程池必须使用shutdown来显式关闭 否则主线程就无法退出 shutdown也不会阻塞主线程

    许多长时间运行的应用有时候需要定时运行任务完成一些诸如统计 优化等工作 比如在电信行业中处理用户话单时 需要每隔 分钟处理话单 网站每天凌晨统计用户访问量 用户数 大型超时凌晨 点统计当天销售额 以及最热卖的商品 每周日进行数据库备份 公司每个月的 号计算工资并进行转帐等 这些都是定时任务 通过 java的并发库concurrent可以轻松的完成这些任务 而且非常的简单

 packageconcurrent;  importstaticjava util concurrent TimeUnit SECONDS;  importjava util Date;  importjava util concurrent Executors;  importjava util concurrent ScheduledExecutorService;  importjava util concurrent ScheduledFuture;  publicclassTestScheduledThread{  publicstaticvoidmain(String[]args){  finalScheduledExecutorServicescheduler=Executors   newScheduledThreadPool( );  finalRunnablebeeper=newRunnable(){  intcount= ;  publicvoidrun(){  System out println(newDate()+ beep +(++count));  }  };  // 秒钟后运行 并每隔 秒运行一次  finalScheduledFuture<?>beeperHandle=scheduler scheduleAtFixedRate(  beeper SECONDS);  // 秒钟后运行 并每次在上次任务运行完后等待 秒后重新运行  finalScheduledFuture<?>beeperHandle =scheduler   scheduleWithFixedDelay(beeper SECONDS);  // 秒后结束关闭任务 并且关闭Scheduler  scheduler schedule(newRunnable(){  publicvoidrun(){  beeperHandle cancel(true);  beeperHandle cancel(true);  scheduler shutdown();  }  } SECONDS);  }  }

    为了退出进程 上面的代码中加入了关闭Scheduler的操作 而对于 小时运行的应用而言 是没有必要关闭Scheduler的

lishixinzhi/Article/program/Java/gj/201311/27714  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码