參考來自:慕課網
1.線程池的介紹
創建線程開銷大,線程池的作用就是預先建立好線程,等待任務派發。
主要由兩部分組成:線程+派發任務的queue。所有的線程都會從隊列的頭部獲取任務。如果隊列是空的,線程就會一直等待,直到有任務進來。
使用方法:創建一個線程池,然後往隊列中放任務。
2.重要參數
3.ThreadPoolExecutor
常用使用方法:
1 ExecutorService executor = Executors.newFixedThreadPool(30);
其實這只是封裝了一下,最終使用的還是ThreadPoolExecutor。
任務的派發:可以看見右邊的執行,是先開始了3個任務,因爲在定義中設置了大小爲3。
這裏的submit()方法裏可以接受Runnable類型的參數,也可以接受Callable類型的參數。區別是:Callable有返回值。
如果想要知道執行任務時的一些信息比如執行成功了嗎或者想要取消任務,可以使用Future。