【Java】ExecutorService
「ExecutorService の使い方」を参考に使用してみた。
まずは、スレッドプール内に1つのスレッドを作成して実行してみる。
Executors.newFixedThreadPool(1);として指定する。
package practice; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class PraExecutorService { public static void main(String[] args) { System.out.println("Entering main"); ExecutorService exec = Executors.newFixedThreadPool(1); try { for (int i = 0; i < 10; i++) { exec.execute(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getId()); } }); } System.out.println("Sleeping..." + Thread.currentThread().getId()); Thread.sleep(15 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Exit main"); } }
結果は次のようにコンソールに出力された。
スレッドが1つで、スレッド番号は8であることがわかる。
Entering main 8 8 8 8 8 8 8 8 8 8 Sleeping...1 Exit main
次に、スレッドプール内に1つのスレッドを作成して実行してみる。
結果は下記の通り。
Entering main Sleeping...1 9 9 9 9 9 9 11 8 10 12 Exit main
スレッド番号8,9,10,11,12の5つのスレッドが実行されていることがわかる。