ExecutorService executor = Executors.newFixedThreadPool(2);
-上記のステートメントは、固定サイズ 2 の ThreadPool を作成しました。
executor.execute(new Worker());
-上記のステートメントは、Runnable
Interface を実装したクラス Worker のインスタンスを取ります。
-ここでExecutors
は、タスクを実行する中間オブジェクトです。スレッド オブジェクトを管理します。
-上記のステートメントを実行すると、run()
メソッドが実行され、run() メソッドが完了すると、スレッドはデッド状態にならずにプールに戻り、別の作業が割り当てられるのを待って、再び移動できるようになります。 Runnable 状態になり、次に実行されます。これはすべて Executors によって処理されます。
executor.shutdown();
-上記のステートメントは、Executor 自体をシャットダウンし、それによって管理されるすべてのスレッドのシャットダウンを適切に処理します..shutdown()
その中央オブジェクト上で、登録された各 Executor を終了する可能性があります。
////////// Edited Part//////////////////////
-まず、Runnable には何も返さない run() メソッドがあり、run() メソッドはチェック例外をスローできないため、Callable は Java 5 で導入された Parametric 型で、call() というメソッドがあります。を返し、Checked 例外をスローすることができます。
次の例を参照してください。
Thread t = new Thread(new Worker());
t.run();
t.start();
- メソッドt.run()
への単なる呼び出しであり、これは.run()
thread of execution
- 一方、のt.start()
にとって重要なことを準備し、のメソッドを呼び出して、 を新しく形成された に割り当て、すぐに戻ります....initialization
thread of execution
run()
Runnable
Task
thread of execution
と を使用する場合、Java のスレッドが必要にSwing
なりAWT
ます。主に GUI コンポーネント。