99
1010import java .util .concurrent .BlockingQueue ;
1111import java .util .concurrent .ExecutionException ;
12- import java .util .concurrent .Executor ;
1312import java .util .concurrent .ExecutorService ;
1413import java .util .concurrent .Future ;
1514import java .util .concurrent .LinkedBlockingQueue ;
@@ -32,7 +31,7 @@ public class TaskScheduler {
3231 private volatile static TaskScheduler sTaskScheduler ;
3332 private static final String TAG = "TaskScheduler" ;
3433
35- private Executor mParallelExecutor ;
34+ private ExecutorService mParallelExecutor ;
3635 private ExecutorService mTimeOutExecutor ;
3736 private Handler mIOHandler ;
3837 private SafeSchedulerHandler mMainHandler = new SafeSchedulerHandler (Looper .getMainLooper ());
@@ -57,9 +56,6 @@ private static TaskScheduler getInstance() {
5756
5857 private TaskScheduler () {
5958
60- /*
61- mParallelExecutor 直接使用AsyncTask的线程,减少新线程创建带来的资源消耗
62- */
6359 mParallelExecutor = new ThreadPoolExecutor (CPU_COUNT ,MAXIMUM_POOL_SIZE ,
6460 KEEP_ALIVE ,TimeUnit .SECONDS ,POOL_WORK_QUEUE ,ThreadFactory .TASKSCHEDULER_FACTORY );
6561
@@ -76,6 +72,10 @@ private TaskScheduler() {
7672
7773 }
7874
75+ public static ExecutorService executorService () {
76+ return getInstance ().mParallelExecutor ;
77+ }
78+
7979 /**
8080 * 获取回调到handlerName线程的handler.一般用于在一个后台线程执行同一种任务,避免线程安全问题。如数据库,文件操作
8181 * @param handlerName 线程名
0 commit comments