Java自定義線程池相關(guān)代碼
創(chuàng)建Java自定義線程池的構(gòu)造方法很多,但是我們?cè)谑褂弥芯蜁?huì)有以下幾個(gè)最主要的代碼應(yīng)用。我們?cè)谑褂玫臅r(shí)候就要先來(lái)了解下有關(guān)Java自定義線程池的源代碼。本例中參數(shù)的含義如下:
Java代碼
1.ThreadPoolExecutor
2.public ThreadPoolExecutor(int corePoolSize,
3.int maximumPoolSize,
4.long keepAliveTime,
5.TimeUnit unit,
6.BlockingQueue workQueue)
用給定的初始參數(shù)和默認(rèn)的線程工廠及處理程序創(chuàng)建新的 ThreadPoolExecutor。使用 Executors 工廠方法之一比使用此通用構(gòu)造方法方便得多。
參數(shù):
7.corePoolSize - 池中所保存的線程數(shù),包括空閑線程。
8.maximumPoolSize - 池中允許的最大線程數(shù)。
9.keepAliveTime - 當(dāng)線程數(shù)大于核心時(shí),此為終止前多余的.空閑線程
等待新任務(wù)的最長(zhǎng)時(shí)間。
10.unit - keepAliveTime 參數(shù)的時(shí)間單位。
11.workQueue - 執(zhí)行前用于保持任務(wù)的隊(duì)列。此隊(duì)列僅保持由 execute
方法提交的 Runnable 任務(wù)。
拋出:
IllegalArgumentException - 如果 corePoolSize 或 keepAliveTime 小于零,或者 maximumPoolSize 小于或等于零,或者 corePoolSize 大于 maximumPoolSize。
NullPointerException - 如果 workQueue 為 null
12.ThreadPoolExecutor
13.public ThreadPoolExecutor(int corePoolSize,
14.int maximumPoolSize,
15.long keepAliveTime,
16.TimeUnit unit,
17.BlockingQueue workQueue)
用給定的初始參數(shù)和默認(rèn)的線程工廠及處理程序創(chuàng)建新的 ThreadPoolExecutor。使用 Executors 工廠方法之一比使用此通用構(gòu)造方法方便得多。
參數(shù):
18.corePoolSize - 池中所保存的線程數(shù),包括空閑線程。
19.maximumPoolSize - 池中允許的最大線程數(shù)。
20.keepAliveTime - 當(dāng)線程數(shù)大于核心時(shí),此為終止前多余的空閑
線程等待新任務(wù)的最長(zhǎng)時(shí)間。
21.unit - keepAliveTime 參數(shù)的時(shí)間單位。
22.workQueue - 執(zhí)行前用于保持任務(wù)的隊(duì)列。此隊(duì)列僅保持由 execute
方法提交的 Runnable 任務(wù)。
23.拋出:
24.IllegalArgumentException - 如果 corePoolSize 或
keepAliveTime 小于零,或者 maximumPoolSize 小于或等于零,
或者 corePoolSize 大于 maximumPoolSize。
25.NullPointerException - 如果 workQueue 為 null
Java自定義線程池稍微麻煩些,不過(guò)通過(guò)創(chuàng)建的ThreadPoolExecutor線程池對(duì)象,可以獲取到當(dāng)前線程池的尺寸、正在執(zhí)行任務(wù)的線程數(shù)、工作隊(duì)列等等。
【Java自定義線程池相關(guān)代碼】相關(guān)文章:
JavaRunnable線程編寫接口代碼11-06
Java線程同步的方法11-06
Java多線程同步問(wèn)題10-16
JAVA常用代碼積累06-19
java關(guān)于多線程的操作10-16
java多線程面試題201711-07