1. 程式人生 > >關於執行緒池ThreadPoolExecutor的初學

關於執行緒池ThreadPoolExecutor的初學

ThreadPoolExecutor executor = new ThreadPoolExecutor(3, 8, 3, TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>());

這個執行緒池一共有5個引數:

   第一個引數:執行緒池核心執行緒的個數

   第二個引數:執行緒池中的最大執行緒數,超過最大執行緒會把其他執行緒任務放進第四個引數也就是佇列裡等待排程

   第三個和第四個結合起來使用,第三個是執行緒空閒等待的時間 long 型別,第四個是時間的單位,TimeUnit裡有各種時間單位。

當執行緒空閒後會等待這裡設定的時間數,如果到達任然沒有呼叫就進行銷燬,銷燬至核心執行緒的個數,(但是這裡注意執行緒池剛建立的時候執行緒個數是0,只有呼叫了才會建立。)

   第五個是佇列,開啟原始碼後可以看見有幾種佇列。

    threadPool.execute(new Runnable() {
			@Override
			public void run() {
				System.out.println("有執行緒呼叫執行");
			}
		});

這個執行執行緒呼叫的方法。