Javaでグローバルスレッドプールを作成する方法
Javaでは、Executors クラスを使用してグローバルスレッドプールを作成できます。Executors クラスには、さまざまなタイプのスレッドプールを作成する静的メソッドがいくつか用意されています。そのうち、newFixedThreadPool メソッドを使用すると、固定サイズのプールを作成できます。以下は、グローバルスレッドプールを作成する際のサンプルコードです。
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class GlobalThreadPool {
private static final int THREAD_POOL_SIZE = 10; // 定义线程池大小
private static ExecutorService executorService;
public static ExecutorService getExecutorService() {
if (executorService == null) {
synchronized (GlobalThreadPool.class) {
if (executorService == null) {
executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE); // 创建线程池
}
}
}
return executorService;
}
}
上の例では、getExecutorServiceメソッドはスレッドセーフを保証するために二重ロックのロックを使用し、スレッドプールのインスタンスを1つだけ作成します。グローバルスレッドプールを使用する必要がある場所でgetExecutorServiceメソッドを呼び出してスレッドプールのインスタンスを取得し、タスクを実行することができます。