- 背景: 經常創建和銷毀,使用量特別大的資源,比如併發情況下的線程,對性能影響很大。 - 思路:提前創建好多個線程,放入線程池中,使用時直接獲取,使用完放後池中。可以避免頻繁創建銷毀,實現重覆利用。類似生活中公共交通工具。 - 好處: - 提高響應速度(減少了創建新線程的時間) - 降低資源消耗( ...
- 背景: 經常創建和銷毀,使用量特別大的資源,比如併發情況下的線程,對性能影響很大。
- 思路:提前創建好多個線程,放入線程池中,使用時直接獲取,使用完放後池中。可以避免頻繁創建銷毀,實現重覆利用。類似生活中公共交通工具。
- 好處:
- 提高響應速度(減少了創建新線程的時間)
- 降低資源消耗(重覆利用線程池中線程,不需要每次都創建)
- 便於線程管理(線程是稀缺資源,使用線程池可以同一分配調優監控)
- corePoolSize: 核心池的大小
- maxmumPoolSize: 最大線程數
- keepAliveTime: 線程沒有任務時最多保持多長時間後終止
//測試線程池
public class TestPool {
public static void main(String[] args) {
//1,創建服務,創建線程池
//newFixedThreadPool 參數為:線程池大小
ExecutorService service= Executors.newFixedThreadPool(10);
//2,執行
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() {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName());
}
}
}