Javaマルチスレッド08_スレッドプール


Javaマルチスレッド08_スレッドプール
スレッドプールの概念:
スレッドプールは、スレッドプールと呼ばれるスレッドを最初に作成します.スレッドプールを使用すると、パフォーマンスが向上します.スレッドプールはシステムの起動時に大量の空きスレッドを作成します.プログラムはタスクをスレッドプールに渡します.スレッドプールはスレッドを起動してこのタスクを実行します.実行が終了した後、スレッドは死亡しません.スレッドプールに戻って空き状態になり、次のタスクの実行を待っています.
スレッドプールを使用する理由:
マルチスレッドの実行時間、システムが絶えず新しいスレッドを起動し、閉じ、コストが非常に高く、システムリソースを過度に消費し、スレッドを過度に切り替える危険があり、システムリソースのクラッシュを引き起こす可能性があります.この場合、スレッドプールが最善の選択です.
ExecutorServiceは、Javaが提供するスレッドプールを管理するクラスです.このクラスの2つの役割:スレッドの数の制御と再利用スレッド
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class TestPool {
     
	
	public static void main(String[] args) {
     
		//    ,     ,newFixedThreadPool        
		ExecutorService service = Executors.newFixedThreadPool(10);
		//  
		service.execute(new MyThread());
		service.execute(new MyThread());
		service.execute(new MyThread());
		service.execute(new MyThread());
		//    
		service.shutdown();
	}

}

class MyThread implements Runnable{
     
	
	@Override
	public void run() {
     
		System.out.println(Thread.currentThread().getName());
	}
}
pool-1-thread-1
pool-1-thread-4
pool-1-thread-3
pool-1-thread-2