ThreadPoolMyservice.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package com.sunzee.thread.myservice;
  2. import com.sunzee.service.MyService;
  3. import com.sunzee.thread.homepage.HomepageTask;
  4. import com.sunzee.thread.homepage.HomepageThreadType;
  5. import java.util.concurrent.ScheduledFuture;
  6. import java.util.concurrent.ScheduledThreadPoolExecutor;
  7. import java.util.concurrent.ThreadPoolExecutor;
  8. import java.util.concurrent.TimeUnit;
  9. /**
  10. * 长时间或者推送要执行的线程池
  11. */
  12. public class ThreadPoolMyservice {
  13. private ScheduledThreadPoolExecutor scheduled;
  14. private ScheduledFuture<?>
  15. mScheduledFutureM600, mScheduledFutureM8, mScheduledFutureM17,
  16. mScheduledFutureSet, mScheduledFutureRst, mScheduledFutureWrite,
  17. mScheduledFutureD120, mScheduledFutureX20,mScheduledFutureDD120;
  18. private MyserviceTask
  19. mTaskRunM600, MTaskRunM8, MTaskRunM17,
  20. mTaskRunMRst, mTaskRunMSet, mTaskRunWrite,
  21. mTaskRunD120, mTaskRunnX20,mTaskRunDD120;
  22. public ThreadPoolMyservice() {
  23. scheduled = new ScheduledThreadPoolExecutor(6);
  24. //设置线程池的策略 抛弃旧的任务
  25. scheduled.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy());
  26. }
  27. public void startALLRead() {
  28. mTaskRunM600 = new MyserviceTask(MyserviceThreadType.runM600);
  29. mScheduledFutureM600 = scheduled.scheduleAtFixedRate(mTaskRunM600, 0, 1000, TimeUnit.MILLISECONDS);
  30. mTaskRunnX20 = new MyserviceTask(MyserviceThreadType.runX20);
  31. mScheduledFutureX20 = scheduled.scheduleAtFixedRate(mTaskRunnX20, 0, 1000, TimeUnit.MILLISECONDS);
  32. }
  33. public void startSetM8() {
  34. MTaskRunM8 = new MyserviceTask(MyserviceThreadType.runM8);
  35. mScheduledFutureM8 = scheduled.scheduleAtFixedRate(MTaskRunM8, 0, 1000, TimeUnit.MILLISECONDS);
  36. }
  37. public void startSetM17() {
  38. MTaskRunM17 = new MyserviceTask(MyserviceThreadType.runM17);
  39. mScheduledFutureM17 = scheduled.scheduleAtFixedRate(MTaskRunM17, 0, 1000, TimeUnit.MILLISECONDS);
  40. }
  41. public void startRst(String address) {
  42. mTaskRunMRst = new MyserviceTask(MyserviceThreadType.runRst, address);
  43. mScheduledFutureRst = scheduled.scheduleAtFixedRate(mTaskRunMRst, 0, 1000, TimeUnit.MILLISECONDS);
  44. }
  45. public void startWriteDD120(String paraAddress, String data) {
  46. mTaskRunDD120 = new MyserviceTask(MyserviceThreadType.runDD120, paraAddress, data);
  47. mScheduledFutureDD120 = scheduled.scheduleAtFixedRate(mTaskRunDD120, 0, 1000, TimeUnit.MILLISECONDS);
  48. }
  49. public void stopWriteDD120() {
  50. stopRead(mTaskRunDD120, mScheduledFutureDD120);
  51. }
  52. public void startWriteD120(String paraAddress, String data) {
  53. mTaskRunD120 = new MyserviceTask(MyserviceThreadType.runD120, paraAddress, data);
  54. mScheduledFutureD120 = scheduled.scheduleAtFixedRate(mTaskRunD120, 0, 1000, TimeUnit.MILLISECONDS);
  55. }
  56. public void stopWriteD120() {
  57. stopRead(mTaskRunD120, mScheduledFutureD120);
  58. }
  59. public void stopReadX20() {
  60. stopRead(mTaskRunnX20, mScheduledFutureX20);
  61. }
  62. public void startSet(String address) {
  63. mTaskRunMSet = new MyserviceTask(MyserviceThreadType.runSet, address);
  64. mScheduledFutureSet = scheduled.scheduleAtFixedRate(mTaskRunMSet, 0, 1000, TimeUnit.MILLISECONDS);
  65. }
  66. public void startWrite(String paraAddress, String data) {
  67. mTaskRunWrite = new MyserviceTask(MyserviceThreadType.runWrite, paraAddress, data);
  68. mScheduledFutureWrite = scheduled.scheduleAtFixedRate(mTaskRunWrite, 0, 1000, TimeUnit.MILLISECONDS);
  69. }
  70. public void stopWrite() {
  71. stopRead(mTaskRunWrite, mScheduledFutureWrite);
  72. }
  73. public void stopRst() {
  74. stopRead(mTaskRunMRst, mScheduledFutureRst);
  75. }
  76. public void stopSet() {
  77. stopRead(mTaskRunMSet, mScheduledFutureSet);
  78. }
  79. public void stopReadM600() {
  80. stopRead(mTaskRunM600, mScheduledFutureM600);
  81. }
  82. public static void stopRead(MyserviceTask threadTask, ScheduledFuture<?> scheduledFuture1) {
  83. if (threadTask != null) {
  84. threadTask.setIsRun(false);
  85. }
  86. if (scheduledFuture1 != null) {
  87. scheduledFuture1.cancel(true);
  88. }
  89. }
  90. public void stopSetM17() {
  91. stopRead(MTaskRunM17, mScheduledFutureM17);
  92. }
  93. public void stopSetM8() {
  94. stopRead(MTaskRunM8, mScheduledFutureM8);
  95. }
  96. public void stopALLRead() {
  97. stopWrite();
  98. stopRst();
  99. stopSet();
  100. stopReadM600();
  101. stopSetM8();
  102. stopSetM17();
  103. stopWriteD120();
  104. stopWriteDD120();
  105. stopReadX20();
  106. }
  107. }