状態、スレッド
スレッドには、ライフサイクルを持って、次の7つの状態、状態は、ユーザーがスレッドのstart()メソッドのスレッドを使用してインスタンスを呼び出す前に、スレッドが状態で作成されて生まれた出産の状態にあり、ユーザー・コールは(開始時)の方法、スレッドレディ状態で(も実行可能状態としても知られる);ときにシステムリソース走行状態にスレッドの名前の後に。
スレッドが実行可能状態に入ると、それは準備ができて、実行時に変換されます、それはまた、スタンバイ、休止状態、または死亡の状態遮らを入力する可能性がある。スレッドが待機()メソッドの実行中にThreadクラスを呼び出して、スレッド、待機状態に入るスレッドは、スレッドクラスは、(通知呼び出す必要があり、待機状態に入る)ウェイクアップする方法、およびのnotifyAll()メソッドは、すべての待ち状態のスレッドをウェイクアップすることですされます。スレッドは、スレッドクラスの睡眠()メソッドを呼び出したときそれはスリープ状態に入ることになるとき。スレッドが動作状態での入力/出力要求を発行した場合、スレッドがブロックされた状態になると、出力の、それもシステムリソース場合は、スレッドを詰まらせるために、レディ状態に入力/スレッドを待ちアイドル、まだスレッドを実行に戻ることはできません。スレッドのrun()メソッドが終了すると、スレッドを死状態に。
一つだけのスレッドが同時に実行されます。
例1
ステータス説明スレッド
パッケージcn.jbit.thread.state。 / ** *スレッドの状態を説明して * / パブリック クラス Mythreadを実装したRunnable { 公共 ボイドの実行を(){ しようと{ System.out.println( "ランニングトンスレッド!" ); Thread.sleep( 500 )。 System.out.println(「短い睡眠の後に再度実行しているトンスレッド!」); } キャッチ(InterruptedExceptionあるIE){ System.out.println(「スレッドが中断されました」); } } パブリック 静的 ボイドメイン(文字列引数[]){ スレッドt = 新しいスレッド(新しいMythread()); System.out.println(「新しいスレッドのトン!」); t.start(); System.out.println( "スレッドtは準備ができています!" ); } }
結果: