線程池參數的意義

參考連接:html

https://www.cnblogs.com/jiangxiulian/p/7443983.htmlspa

1. corePoolSize: 核心線程數

缺省值爲1線程

  • 核心線程會一直存活,即便沒有任務須要執行
  • 當線程數小於核心線程數,即便有空閒線程,線程池也會優先建立新線程處理
  • 設置allowCoreThreadTimeout=true(默認false)時,核心線程會超時關閉

2. queueCapacity: 任務隊列容量(阻塞隊列)

當核心線程數達到最大時,新任務會放在隊列中排隊等待執行htm

3. maxPoolSize: 最大線程數

  • 當前線程數 >= corePoolSize, 且任務對列已滿時,線程池會建立新線程來處理任務
  • 當前線程數 = maxPoolSize, 且任務對列已滿時, 線程池會拒絕處理任務而拋出異常

4. keepAliveTime: 線程空閒時間

  • 當空閒時間達到keepAliveTime時,線程會退出,直到線程數量等於corePoolSize
  • 若是allowCoreThreadTimeout=true, 則線程會退出,直到線程數量等於0

5. allowCoreThreadTimeout:容許核心線程超時

缺省是falseblog

6. rejectedExecutionHandler: 任務拒絕處理器

  • 當線程數達到maxPoolSize, 且隊列已滿,會拒絕新任務
  • 當線程池調用shutdown()和線程池真正shutdown之間提交的任務會被拒絕。
相關文章
相關標籤/搜索