1. 程式人生 > >Java多執行緒-併發之執行緒池

Java多執行緒-併發之執行緒池

執行緒池有了解嗎?

答:
java.util.concurrent.ThreadPoolExecutor 類就是一個執行緒池。客戶端呼叫ThreadPoolExecutor.submit(Runnable task) 提交任務,執行緒池內部維護的工作者執行緒的數量就是該執行緒池的執行緒池大小,有 3 種形態:

  • 當前執行緒池大小 :表示執行緒池中實際工作者執行緒的數量;
  • 最大執行緒池大小 (maxinumPoolSize):表示執行緒池中允許存在的工作者執行緒的數量上限;
  • 核心執行緒大小 (corePoolSize ):表示一個不大於最大執行緒池大小的工作者執行緒數量上限。
  1. 如果執行的執行緒少於 corePoolSize,則 Executor 始終首選新增新的執行緒,而不進行排隊
  2. 如果執行的執行緒等於或者多於 corePoolSize,則 Executor 始終首選將請求加入佇列,而不是新增新執行緒;
  3. 如果無法將請求加入佇列,即佇列已經滿了,則建立新的執行緒,除非建立此執行緒超出 maxinumPoolSize, 在這種情況下,任務將被拒絕。