単一モードスレッドプールの作成と使用
今日はラインオフプールの作成と使用を記録します.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");
}
}