package com.hdl.sdk.link.common.utils; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; /** * Created by Tong on 2021/9/15. */ public class ThreadToolUtils { // private final Handler uiHandler = new Handler(Looper.getMainLooper()); //cpu 最大线程容纳量 private final int coreSize = Runtime.getRuntime().availableProcessors() + 1; private ThreadToolUtils() { } private static class SingletonInstance { private static final ThreadToolUtils INSTANCE = new ThreadToolUtils(); } public static ThreadToolUtils getInstance() { return SingletonInstance.INSTANCE; } /** * 线程数量固定的线程池 */ public ExecutorService newFixedThreadPool(int size) { if (size == 0 || coreSize < size) { return Executors.newFixedThreadPool(coreSize); } return Executors.newFixedThreadPool(size); } /** * 定时任务线程池 */ public ScheduledExecutorService newScheduledThreadPool(int size) { if (size == 0 || coreSize < size) { return Executors.newScheduledThreadPool(coreSize); } return Executors.newScheduledThreadPool(size); } /** * 单一线程 */ public ExecutorService newSingleThreadPool() { return Executors.newSingleThreadExecutor(); } public ExecutorService newCachedThreadPool() { return Executors.newCachedThreadPool(); } // /** // * 切换回主线程 // */ // public void runOnUiThread(Runnable run) { // uiHandler.post(run); // } }