From daf99e033f610770a8d1fe98bdd6250300e53d7b Mon Sep 17 00:00:00 2001 From: liushuai1 Date: Thu, 18 Apr 2019 16:43:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8Android=20=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3=E8=AE=BE=E7=BD=AE=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E4=BC=98=E5=85=88=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/modules.xml | 1 - .../taskscheduler/ThreadFactory.java | 29 ++++++++++++------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.idea/modules.xml b/.idea/modules.xml index 418b358..d39b58c 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,6 @@ - diff --git a/taskscheduler/src/main/java/com/silencedut/taskscheduler/ThreadFactory.java b/taskscheduler/src/main/java/com/silencedut/taskscheduler/ThreadFactory.java index ef4e273..79b25a5 100644 --- a/taskscheduler/src/main/java/com/silencedut/taskscheduler/ThreadFactory.java +++ b/taskscheduler/src/main/java/com/silencedut/taskscheduler/ThreadFactory.java @@ -10,25 +10,34 @@ */ class ThreadFactory { + static final class BackgroundRunnable implements Runnable { + private Runnable runnable; + BackgroundRunnable(Runnable runnable) { + this.runnable = runnable; + } + + @Override + public void run() { + Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); + runnable.run(); + } + } + static final java.util.concurrent.ThreadFactory TASKSCHEDULER_FACTORY = new java.util.concurrent.ThreadFactory() { private final AtomicInteger mCount = new AtomicInteger(1); @Override public Thread newThread(Runnable r) { - Thread thread = new Thread(r, "TaskScheduler #" + mCount.getAndIncrement()); - thread.setPriority(Process.THREAD_PRIORITY_BACKGROUND); - return thread; + return new Thread(new BackgroundRunnable(r), "TaskScheduler #" + mCount.getAndIncrement()); } }; - static final java.util.concurrent.ThreadFactory TIME_OUT_THREAD_FACTORY = new java.util.concurrent.ThreadFactory() { + static final java.util.concurrent.ThreadFactory TIME_OUT_THREAD_FACTORY = new java.util.concurrent.ThreadFactory() { private final AtomicInteger mCount = new AtomicInteger(1); @Override public Thread newThread(Runnable r) { - Thread thread = new Thread(r, "TaskScheduler timeoutThread #" + mCount.getAndIncrement()); - thread.setPriority(Process.THREAD_PRIORITY_BACKGROUND); - return thread; + return new Thread(new BackgroundRunnable(r), "TaskScheduler timeoutThread #" + mCount.getAndIncrement()); } }; @@ -36,10 +45,8 @@ public Thread newThread(Runnable r) { private final AtomicInteger mCount = new AtomicInteger(1); @Override - public Thread newThread( Runnable r) { - Thread thread = new Thread(r, "TaskScheduler scheduler #" + mCount.getAndIncrement()); - thread.setPriority(Process.THREAD_PRIORITY_BACKGROUND); - return thread; + public Thread newThread(Runnable r) { + return new Thread(new BackgroundRunnable(r), "TaskScheduler scheduler #" + mCount.getAndIncrement()); } }; }