這篇主要說一下Executor
框架及線程池。
什麼是線程池
顧名思義,線程池就是存放線程的池子,池子裏面存放的是已經創建好的N個線程;Java
裏面一般用List
或Set
等容器類來存儲線程,實現線程池功能。
爲什麼要使用線程池
首先,線程的創建和銷燬是很耗費時間和資源的一件事情。
其次,線程不能無限制的創建,每個線程都會佔用內存資源,而且如果線程過多,線程之間的調度也是一件很消耗系統性能的事情。
線程池帶來的好處
可以做到隨用隨取,節省因創建線程而花費的時間
通過設置線程池容量,可以保證創建的線程數量在一個合理範圍區間,不會耗光系統資源。
如何創建線程池Java
提供了Executor
框架,可以讓我們簡單方便的使用線程池。
//創建一個爲容量爲2的線程池
Executor exec = Executors.newFixedThreadPool(2);
//向線程池提交5個任務
for