単一モードスレッドプールの作成と使用



今日はラインオフプールの作成と使用を記録します.1つのプログラムでは1つのスレッドプールしか使用されないことが多いため、コードをより完璧にするために、単一のインスタンスモードを使用してスレッドプールを作成することができます.単一のインスタンスモードは設計モードで、構造方法を私有化し、内部に戻る必要があるオブジェクトを作成しました.例えば、スレッドプールを作成するために必要なのはスレッドプールです.したがって、ExecutorServiceのオブジェクトが返されます.操作スレッドプールは、一般的に次のステップに分けられます.1.スレッドプール2を作成する.Runnableオブジェクト3を作成します.submitを使用してrunnableインスタンス4をコミットします.スレッドプールを閉じる(一般的には閉じる必要はありません)スレッドプールを作成するには4つの方法があります.1.生存60秒のスレッドプールを作成する:ExecutorService threadPool=Executors.newCachedThreadPool()2.一定のスレッド数のスレッドプールを作成します.長い間生存しています.ExecutorService threadPool 2=Executors.newFixedThreadPool(5); 3.スレッドが1つしかないスレッドプールを作成します.生存時間が長いExecutorService threadPool 3=Executors.newSingleThreadExecutor(); 4.パッケージされた一例のモードでThreadPoolUtils.JAvaはスレッドプールを作成するgetThreadPool();
 
次に、私が書いたパッケージ化された単一のモードでスレッドプールとスレッドプールを作成する基本的な使用コードを示します.
 
package com.jsjer;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/*
 *          
 * 	                       
 */
public class ThreadPoolUtils {
	private ThreadPoolUtils() {
	}

	private static final ExecutorService threadPool = Executors.newCachedThreadPool();

	public static ExecutorService getThreadPool() {
		return threadPool;
	}
}

 
package com.jsjer;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolDemo {

	public static void main(String[] args) {
		// 1.     
//		1.  60s    
//		ExecutorService threadPool = Executors.newCachedThreadPool();
//		2.             ,      
//		ExecutorService threadPool2 = Executors.newFixedThreadPool(5);
//		3.              ,      
//		ExecutorService threadPool3 = Executors.newSingleThreadExecutor();
//		4.         ThreadPoolUtils.java      		
		ExecutorService threadPool = ThreadPoolUtils.getThreadPool();
		
		// 2.  Runnable  
		MyRunnable task = new MyRunnable();
		
		// 3.  submit  runnable  
		threadPool.submit(task);
		
		// 4.     
		threadPool.shutdown();//         
		
	}

}

class MyRunnable implements Runnable {

	@Override
	public void run() {
		System.out.println("shanglele");
	}

}