ThreadPoolDebugParameter.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.sunzee.thread.debugparameter;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.concurrent.ScheduledFuture;
  5. import java.util.concurrent.ScheduledThreadPoolExecutor;
  6. import java.util.concurrent.ThreadPoolExecutor;
  7. import java.util.concurrent.TimeUnit;
  8. /**
  9. * 调试页参数线程池
  10. */
  11. public class ThreadPoolDebugParameter {
  12. private ScheduledThreadPoolExecutor scheduled;
  13. private ScheduledFuture<?>
  14. mScheduledFutureM311, mScheduledFutureRst, mScheduledFutureSet;
  15. private DebugParameterTask
  16. mTaskRunM311, mTaskRunMRst, mTaskRunMSet;
  17. public ArrayList<String> getValues() {
  18. return values;
  19. }
  20. private ArrayList<String> values = new ArrayList<>(Arrays.asList("0", "0", "0", "0", "0", "0", "0"));
  21. public ThreadPoolDebugParameter() {
  22. scheduled = new ScheduledThreadPoolExecutor(7);
  23. //设置线程池的策略 抛弃旧的任务
  24. scheduled.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy());
  25. }
  26. private static final String TAG = "ThreadPoolGeneralParame";
  27. /**
  28. * 读取全部参数
  29. */
  30. public void startALLRead() {
  31. mTaskRunM311 = new DebugParameterTask(DebugParameterThreadType.runM311);
  32. mScheduledFutureM311 = scheduled.scheduleAtFixedRate(mTaskRunM311, 10, 1000, TimeUnit.MILLISECONDS);
  33. }
  34. public void setReceive1(boolean receive1) {
  35. isReceive1 = receive1;
  36. }
  37. private boolean isReceive1 = false;
  38. public boolean isReceive1() {
  39. return isReceive1;
  40. }
  41. //-------------------------------------------stop read-----------------------------------------------------
  42. public void stopReadM311() {
  43. stopRead(mTaskRunM311, mScheduledFutureM311);
  44. }
  45. //-------------------------------------------stop read-----------------------------------------------------
  46. public static void stopRead(DebugParameterTask threadTask, ScheduledFuture<?> scheduledFuture1) {
  47. if (threadTask != null) {
  48. threadTask.setIsRun(false);
  49. }
  50. if (scheduledFuture1 != null) {
  51. scheduledFuture1.cancel(true);
  52. }
  53. }
  54. public void startRst(String address) {
  55. mTaskRunMRst = new DebugParameterTask(DebugParameterThreadType.runRst, address);
  56. mScheduledFutureRst = scheduled.scheduleAtFixedRate(mTaskRunMRst, 10, 1000, TimeUnit.MILLISECONDS);
  57. }
  58. public void startSet(String address) {
  59. mTaskRunMSet = new DebugParameterTask(DebugParameterThreadType.runSet, address);
  60. mScheduledFutureSet = scheduled.scheduleAtFixedRate(mTaskRunMSet, 10, 1000, TimeUnit.MILLISECONDS);
  61. }
  62. public void stopRst() {
  63. stopRead(mTaskRunMRst, mScheduledFutureRst);
  64. }
  65. public void stopSet() {
  66. stopRead(mTaskRunMSet, mScheduledFutureSet);
  67. }
  68. }