ExecutorService的建立方式

public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue,
                              ThreadFactory threadFactory,

corePoolSize :java

  • 核心線程數,一旦建立將不會再釋放
  • 若是建立的線程數尚未達到指定的核心線程數量,將會繼續建立新的核心線程,直到達到最大核心線程數後,核心線程數將不在增長;
  • 若是沒有空閒的核心線程,同時又未達到最大線程數,則將繼續建立非核心線程;
  • 若是核心線程數等於最大線程數,則當核心線程都處於激活狀態時,任務將被掛起,等待空閒線程來執行。

maximumPoolSize :線程

  • 最大線程數,容許建立的最大線程數量。
  • 若是最大線程數等於核心線程數,則沒法建立非核心線程;
  • 若是非核心線程處於空閒時,超過設置的空閒時間,則將被回收,釋放佔用的資源。

keepAliveTime :code

  • 也就是當線程空閒時,所容許保存的最大時間,
  • 超過這個時間,線程將被釋放銷燬,但只針對於非核心線程

unit :隊列

  • 時間單位,TimeUnit.SECONDS等。

workQueue :資源

  • 任務隊列,存儲暫時沒法執行的任務,等待空閒線程來執行任務。

threadFactory :  it

  • 線程工程,用於建立線程。

handler :class

  • 當線程邊界和隊列容量已經達到最大時,用於處理阻塞時的程序  
相關文章
相關標籤/搜索