当前位置:   article > 正文

多线程-ScheduledExecutorService_scheduledexecutorservice 多线程

scheduledexecutorservice 多线程



转载: http://blog.csdn.net/tsyj810883979/article/details/8481621 


  1. package cn.stu;
  2. import java.text.DateFormat;
  3. import java.text.ParseException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import java.util.concurrent.Executors;
  7. import java.util.concurrent.ScheduledExecutorService;
  8. import java.util.concurrent.TimeUnit;
  9. public class Main {
  10. static int count;
  11. public static void main(String[] args){
  12. final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
  13. // fixedDelay(executor);
  14. fixedRate(executor);
  15. }
  16. /**
  17. *
  18. * @Title: fixedRate
  19. * @Description: TODO 到了时间点就走, 订死的时间处理业务。
  20. * @param @param executor 设定文件
  21. * @return void 返回类型
  22. * @throws
  23. */
  24. private static void fixedRate(final ScheduledExecutorService executor){
  25. long oneDay = 24 * 60 * 60 * 1000;
  26. long initDelay = getTimeMillis("16:19:00") - System.currentTimeMillis();
  27. initDelay = initDelay > 0 ? initDelay : oneDay + initDelay;
  28. executor.scheduleAtFixedRate(
  29. new Runnable() {
  30. @Override
  31. public void run() {
  32. System.out.println("到点执行了......");
  33. executor.shutdown();
  34. }
  35. },
  36. initDelay,
  37. oneDay,
  38. TimeUnit.MILLISECONDS);
  39. }
  40. /**
  41. * 获取指定时间对应的毫秒数
  42. * @param time "HH:mm:ss"
  43. * @return
  44. */
  45. private static long getTimeMillis(String time) {
  46. try {
  47. DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
  48. DateFormat dayFormat = new SimpleDateFormat("yy-MM-dd");
  49. Date curDate = dateFormat.parse(dayFormat.format(new Date()) + " " + time);
  50. return curDate.getTime();
  51. } catch (ParseException e) {
  52. e.printStackTrace();
  53. }
  54. return 0;
  55. }
  56. /**
  57. *
  58. * @Title: fixedDelay
  59. * @Description: TODO 更偏向于计划, 计划几分钟等这样的, 不是一个固定死的时间来处理任务。
  60. * @param @param executor 设定文件
  61. * @return void 返回类型
  62. * @throws
  63. */
  64. private static void fixedDelay(final ScheduledExecutorService executor) {
  65. executor.scheduleWithFixedDelay(new Runnable() {
  66. @Override
  67. public void run() {
  68. System.out.println("间隔2秒调用一次....");
  69. count++;
  70. if(count == 10){
  71. executor.shutdown();
  72. }
  73. }
  74. }, 0, 2000, TimeUnit.MILLISECONDS);
  75. }
  76. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/83922
推荐阅读
相关标签
  

闽ICP备14008679号