1. 程式人生 > 其它 >Thread多執行緒5-執行緒池

Thread多執行緒5-執行緒池

執行緒池

  • 背景:經常建立和銷燬、使用量特別大的資源,比如併發情況下的執行緒,對效能影響很大;

  • 思路:提前建立好多個執行緒,放入執行緒池,使用時直接獲取,使用完放回執行緒池,可以變頻繁建立銷燬,實現複用;

  • 好處:

    • 提高響應速度(減少了建立執行緒的時間);
    • 降低資源消耗(重複利用執行緒池中執行緒,不需要每次都建立);
    • 便於執行緒管理

    corePoolSize:核心執行緒池的大小;
    maximumPoolSize:最大執行緒數;
    keepAliveTime:執行緒沒有任務是,最多保持多長時間後終止;

public class ThreadPool {
    public static void main(String[] args) {
        //1.建立服務,建立執行緒池
        ExecutorService executorService = Executors.newFixedThreadPool(10);
        executorService.execute(new MyThread());
        executorService.execute(new MyThread());
        executorService.execute(new MyThread());

        executorService.submit(new MyThread());
        executorService.submit(new MyThread());
        //2.關閉連線
        executorService.shutdown();
    }
}
class MyThread implements Runnable{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName());
    }
}