Executor 併發調度模型

Executor 併發調度模型

Executor是一種併發調度模式:它藉助於隊列和維護着一個用於調度任務的線程池來處理任務對象的調度。每個Runnable對象都是一個任務單元,它是能夠被Executor調度器調度的最小單元。
當開發者建立一個Runnable對象時,開發者須要把它提交到Executor調度器中,調度器會把它送入到隊列中,等待調度。線程池裏面處於空閒的線程就會從隊列中獲取可調用的任務對象,而後在此線程
中執行任務單元。併發

優勢

  1. 能夠控制併發的數量線程

  2. 不會爲每個線程開闢一個新的線程,避免頻繁建立線程的系統開銷code

僞碼描述

建立一個Executor
設置Executor須要存聽任務單元的隊列
設置Executor用於執行任務單元的線程池,並初始化一批線程等待任務調度

...

建立一個Runnable對象,即任務單元
送入任務單元到Executor調度器中
Executor收到任務而後把其送入到隊列中

...

線程池掃描到隊列中有任務,取出任務,分配一個空閒的線程調用Runnable的run()方法
任務單元計算完畢,線程從新在線程池中處於空閒對象