2020 China Collegiate Programming Contest Qinhuangdao Site K題 Kingdom's Power
阿新 • • 發佈:2020-10-20
執行緒池
為什麼需要執行緒池
- 經常建立和銷燬執行緒是耗時且不穩定的,很難勝任併發度較高的任務。
- 可以採用池化方法解決這個問題,提前建立好多個執行緒,構成一個執行緒池,使用時直接獲取,使用完放回池中,避免了頻繁建立銷燬的消耗。
使用執行緒池
- JDK5.0提供了執行緒池相關的API:ExecutorService和Executors
- ExecutorService:真正的執行緒池介面。常見子類ThreadPoolExecutor。
- Executors:工具類,執行緒池的工廠類,用於建立並返回不同型別的執行緒池。
程式碼實現
package MultiProcess; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class TestPoll { public static void main(String[] args) { //1.建立服務,建立執行緒池 ExecutorService service = Executors.newFixedThreadPool(10); //2.執行 service.execute(new MyThread()); service.execute(new MyThread()); service.execute(new MyThread()); service.execute(new MyThread()); service.execute(new MyThread()); //3.關閉 service.shutdown(); } } class MyThread implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } }
結果
pool-1-thread-1
pool-1-thread-2
pool-1-thread-3
pool-1-thread-4
pool-1-thread-5