1 回答

TA貢獻44條經(jīng)驗 獲得超73個贊
首先是corePoolSize,在創(chuàng)建了線程池后,在他的默認情況下,線程池中其實是沒有任何線程的,而是等待有任務到來才創(chuàng)建線程去執(zhí)行任務,在創(chuàng)建了線程池后,線程池中的線程數(shù)為0,當有任務來之后,就會創(chuàng)建一個線程去執(zhí)行任務,當線程池中的線程數(shù)目達到corePoolSize后,就會把到達的任務放到緩存隊列當中。核心線程在allowCoreThreadTimeout被設(shè)置為true時會超時退出,默認情況下不會退出。
maxPoolSize
當線程數(shù)大于或等于核心線程,且任務隊列已滿時,線程池會創(chuàng)建新的線程,直到線程數(shù)量達到maxPoolSize。如果線程數(shù)已等于maxPoolSize,且任務隊列已滿,則已超出線程池的處理能力,線程池會拒絕處理任務而拋出異常。
keepAliveTime
當線程空閑時間達到keepAliveTime,該線程會退出,直到線程數(shù)量等于corePoolSize。如果allowCoreThreadTimeout設(shè)置為true,則所有線程均會退出直到線程數(shù)量為0。
allowCoreThreadTimeout
是否允許核心線程空閑退出,默認值為false。
queueCapacity
任務隊列容量。從maxPoolSize的描述上可以看出,任務隊列的容量會影響到線程的變化,因此任務隊列的長度也需要恰當?shù)脑O(shè)置。
希望采納
添加回答
舉報