123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package com.sunzee.thread.myservice;
- import com.sunzee.service.MyService;
- import com.sunzee.thread.homepage.HomepageTask;
- import com.sunzee.thread.homepage.HomepageThreadType;
- import java.util.concurrent.ScheduledFuture;
- import java.util.concurrent.ScheduledThreadPoolExecutor;
- import java.util.concurrent.ThreadPoolExecutor;
- import java.util.concurrent.TimeUnit;
- /**
- * 长时间或者推送要执行的线程池
- */
- public class ThreadPoolMyservice {
- private ScheduledThreadPoolExecutor scheduled;
- private ScheduledFuture<?>
- mScheduledFutureM600, mScheduledFutureM8, mScheduledFutureM17,
- mScheduledFutureSet, mScheduledFutureRst, mScheduledFutureWrite,
- mScheduledFutureD120, mScheduledFutureX20,mScheduledFutureDD120;
- private MyserviceTask
- mTaskRunM600, MTaskRunM8, MTaskRunM17,
- mTaskRunMRst, mTaskRunMSet, mTaskRunWrite,
- mTaskRunD120, mTaskRunnX20,mTaskRunDD120;
- public ThreadPoolMyservice() {
- scheduled = new ScheduledThreadPoolExecutor(6);
- //设置线程池的策略 抛弃旧的任务
- scheduled.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy());
- }
- public void startALLRead() {
- mTaskRunM600 = new MyserviceTask(MyserviceThreadType.runM600);
- mScheduledFutureM600 = scheduled.scheduleAtFixedRate(mTaskRunM600, 0, 1000, TimeUnit.MILLISECONDS);
- mTaskRunnX20 = new MyserviceTask(MyserviceThreadType.runX20);
- mScheduledFutureX20 = scheduled.scheduleAtFixedRate(mTaskRunnX20, 0, 1000, TimeUnit.MILLISECONDS);
- }
- public void startSetM8() {
- MTaskRunM8 = new MyserviceTask(MyserviceThreadType.runM8);
- mScheduledFutureM8 = scheduled.scheduleAtFixedRate(MTaskRunM8, 0, 1000, TimeUnit.MILLISECONDS);
- }
- public void startSetM17() {
- MTaskRunM17 = new MyserviceTask(MyserviceThreadType.runM17);
- mScheduledFutureM17 = scheduled.scheduleAtFixedRate(MTaskRunM17, 0, 1000, TimeUnit.MILLISECONDS);
- }
- public void startRst(String address) {
- mTaskRunMRst = new MyserviceTask(MyserviceThreadType.runRst, address);
- mScheduledFutureRst = scheduled.scheduleAtFixedRate(mTaskRunMRst, 0, 1000, TimeUnit.MILLISECONDS);
- }
- public void startWriteDD120(String paraAddress, String data) {
- mTaskRunDD120 = new MyserviceTask(MyserviceThreadType.runDD120, paraAddress, data);
- mScheduledFutureDD120 = scheduled.scheduleAtFixedRate(mTaskRunDD120, 0, 1000, TimeUnit.MILLISECONDS);
- }
- public void stopWriteDD120() {
- stopRead(mTaskRunDD120, mScheduledFutureDD120);
- }
- public void startWriteD120(String paraAddress, String data) {
- mTaskRunD120 = new MyserviceTask(MyserviceThreadType.runD120, paraAddress, data);
- mScheduledFutureD120 = scheduled.scheduleAtFixedRate(mTaskRunD120, 0, 1000, TimeUnit.MILLISECONDS);
- }
- public void stopWriteD120() {
- stopRead(mTaskRunD120, mScheduledFutureD120);
- }
- public void stopReadX20() {
- stopRead(mTaskRunnX20, mScheduledFutureX20);
- }
- public void startSet(String address) {
- mTaskRunMSet = new MyserviceTask(MyserviceThreadType.runSet, address);
- mScheduledFutureSet = scheduled.scheduleAtFixedRate(mTaskRunMSet, 0, 1000, TimeUnit.MILLISECONDS);
- }
- public void startWrite(String paraAddress, String data) {
- mTaskRunWrite = new MyserviceTask(MyserviceThreadType.runWrite, paraAddress, data);
- mScheduledFutureWrite = scheduled.scheduleAtFixedRate(mTaskRunWrite, 0, 1000, TimeUnit.MILLISECONDS);
- }
- public void stopWrite() {
- stopRead(mTaskRunWrite, mScheduledFutureWrite);
- }
- public void stopRst() {
- stopRead(mTaskRunMRst, mScheduledFutureRst);
- }
- public void stopSet() {
- stopRead(mTaskRunMSet, mScheduledFutureSet);
- }
- public void stopReadM600() {
- stopRead(mTaskRunM600, mScheduledFutureM600);
- }
- public static void stopRead(MyserviceTask threadTask, ScheduledFuture<?> scheduledFuture1) {
- if (threadTask != null) {
- threadTask.setIsRun(false);
- }
- if (scheduledFuture1 != null) {
- scheduledFuture1.cancel(true);
- }
- }
- public void stopSetM17() {
- stopRead(MTaskRunM17, mScheduledFutureM17);
- }
- public void stopSetM8() {
- stopRead(MTaskRunM8, mScheduledFutureM8);
- }
- public void stopALLRead() {
- stopWrite();
- stopRst();
- stopSet();
- stopReadM600();
- stopSetM8();
- stopSetM17();
- stopWriteD120();
- stopWriteDD120();
- stopReadX20();
- }
- }
|