引言
Executor框架是指JDK 1.5中引入的一系列併發庫中與Executor相關的功能類,包括Executor、Executors、ExecutorService、Future、Callable等。
一、爲什麼要引入Executor框架?
1、如果使用new Thread(...).start()
的方法處理多線程,有如下缺點:
- 開銷大。對於JVM來說,每次新建線程和銷燬線程都會有很大的開銷。
- 線程缺乏管理。沒有一個池來限制線程的數量,如果併發量很高,會創建很多線程,而且線程之間可能會有相互競爭,這將會過多佔用系統資源,增加系統資源的消耗量。而且線程數量超過系統負荷,容易導致系統不穩定。
2、使用線程池的方法,有如下優點:
- 線程複用。通過複用創建了的線程,減少了線程的創建、消亡的開銷。
- 有效控制併發線程數。
- 提供了更簡單靈活的線程管理。可以提