Java スレッドは、次のライフサイクル段階を経ます。 作成: Thread クラスを継承するか、Runnable インターフェイスを実装することによって作成されます。準備: スレッドは作成後、準備状態に入り、スケジューリングの実行を待ちます。実行中: 実行がスケジュールされており、コードが実行されています。ブロッキング: 障害物に遭遇するとコードは実行できません。待機: 他のスレッドを積極的に待機します。スリープ: sleep() メソッドを呼び出してスリープすると、コードは実行できません。通知:notify() または NoticeAll() メソッドを通じて起動します。死亡: 実行が完了するかエラーが発生すると、実行をスケジュールできなくなります。
Java スレッドのライフ サイクルの探索
Java では、スレッドは独自のスタック、状態、および実行コンテキスト。各スレッドには、次の段階を含む固有のライフ サイクルがあります:
1. 作成
スレッドのライフ サイクルは作成から始まり、次の方法で達成できます。
// 通过继承 Thread 类实现 Thread thread1 = new Thread() { public void run() { // 线程执行的代码 } }; // 通过实现 Runnable 接口实现 Runnable task = new Runnable() { public void run() { // 线程执行的代码 } }; Thread thread2 = new Thread(task);
2. 準備
スレッドが作成されると、準備完了状態になります。現時点では、スレッドの実行はまだスケジュールされていません。
3. 実行中
スレッドは実行がスケジュールされると、実行状態になります。実行状態のスレッドはコードを実行しています。
4. ブロッキング
スレッドがリソースの待機中などの障害に遭遇すると、ブロッキング状態になります。この時点では、スレッドはコードを実行できません。
5. 待機
スレッドは他のスレッドをアクティブに待機できます。 wait()
メソッドを呼び出した後、スレッドは待機状態になります。
6. Sleep
スレッドは、sleep()
メソッドを呼び出して、一定期間スリープ状態にすることもできます。スリープ中、スレッドはコードを実行できません。
7. 通知
待機中またはスリープ状態のスレッドは、notify()
または notifyAll()
を呼び出すことで呼び出すことができます。方法で目覚めます。
8. 死亡
スレッドの実行が完了するか、エラーが発生すると、スレッドは死亡状態になります。デッド状態のスレッドは実行をスケジュールできなくなります。
実践的なケース
スレッドを作成し、出力を出力します:
class MyThread extends Thread { public void run() { System.out.println("Thread is running"); } } public class Main { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); // 启动线程 System.out.println("Thread state: " + thread.getState()); // 输出线程状态 } }
出力:
Thread is running Thread state: RUNNABLE
これは、スレッドが正常に作成され、実行状態に入ります。
以上がJava スレッドのライフサイクルの調査の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。