Android開發(fā)中,線程池工具類的封裝與使用。

一、線程池工具類

/**

* 線程池工具類

* @author zhangjikai

* 20190711

*/

public class ThreadPoolUtil {

//核心線程數(shù)為5

? ? private static int CORE_POOL_SIZE=5;

//線程池最大線程數(shù)

? ? private static int MAX_POOL_SIZE=20;

//額外線程空狀態(tài)生存時間

? ? private static int KEEP_ALIVE_TIME=10000;

//阻塞隊列。當(dāng)核心線程都被占用,且阻塞隊列已滿的情況下,才會開啟額外線程。

? ? private static BlockingQueueblockingQueue=new ArrayBlockingQueue(10);

//線程池

? ? private static ThreadPoolExecutorthreadPool;

//無參構(gòu)造方法

? ? public ThreadPoolUtil() {

}

//線程工廠

? ? private static ThreadFactorythreadFactory=new ThreadFactory() {

private final AtomicIntegerinteger=new AtomicInteger();

@Override

? ? ? ? public Thread newThread(Runnable runnable) {

return new Thread(runnable,"myThreadPool thread:" +integer.getAndIncrement());

}

};

//靜態(tài)代碼塊

? ? static {

threadPool=new ThreadPoolExecutor(CORE_POOL_SIZE,MAX_POOL_SIZE,KEEP_ALIVE_TIME,TimeUnit.SECONDS,blockingQueue,threadFactory);

}

public static void execute(Runnable runnable) {

threadPool.execute(runnable);

}

public static void execute(FutureTask futureTask) {

threadPool.execute(futureTask);

}

public static void cancel(FutureTask futureTask) {

futureTask.cancel(true);

}

}

二、使用

private void testPool(){

ThreadPoolUtil.execute(new Runnable() {

@Override

? ? ? ? public void run() {

/**

* 這里寫你需要執(zhí)行的操作

*/

? ? ? ? }

});

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容