Java線程池總結--線程池的代碼實現

以創建 newFixedThreadPool 定長線程池爲例:

首先,java.util.concurrent.Executors:線程池的工廠類,用來生成線程池
其次,Executors類中的靜態方法: static ExecutorService newFixedThreadPool(int nThreads) 創建一個可重用固定線程數的線程池

  • 參數:
    int nThreads:創建線程池中包含的線程數量
  • 返回值:
    ExecutorService接口,返回的是ExecutorService接口的實現類對象,我們可以使用ExecutorService接口接收(面向接口編程)
    java.util.concurrent.ExecutorService:線程池接口,用來從線程池中獲取線程,調用start方法,執行線程任務。

submit(Runnable task)提交一個Runnable任務用於執行

關閉/銷燬線程池方法 : void shutdown()

線程池的使用步驟:

1、使用線程池的工廠類Executors裏面提供的靜態方法newFixedThreadPool生產一個指定線程數量的線程池。
2、創建一個類,實現Runnable接口,重寫run方法,設置線程任務。
3、調用ExecutorService中的方法submit,傳遞線程任務,開啓線程,執行run方法。
4、調用ExecutorService中的方法shutdown銷燬線程池(不建議執行)。

代碼如下

  • 創建一個類,實現Runnable接口,重寫run方法,設置線程任務
public classRunnableImp1 implements Runnable {
	public void run() {
		System.out.println(Thread.currentThread().getName()+"創建了一個新的線程,執行");
	}
}
  • 創建Demo01ThreadPool類
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Demo01ThreadPool {
	public static void main(String args[]) {
		//1、使用線程池的工廠類Executors裏面提供的靜態方法newFixedThreadPool生產一個指定線程數量的線程池。
		ExecutorService es=Executors.newFixedThreadPool(2);//線程池數量爲2
		
		//2.調用ExecutorService中的方法submit,傳遞線程任務,開啓線程,執行run方法。
		es.submit(new RunnableImp1());

		//3.調用ExecutorService中的方法shutdown銷燬線程池(不建議執行)
		es.shutdown();//使用後會把線程池銷燬,就無法執行新的線程了。
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章