パブリック クラス Test1をを拡張し、スレッド{ @Override 公共 のボイドの実行(){ ながら、(真) { System.out.printlnは(にThread.currentThread()のgetName()); } } パブリック 静的 ボイドメイン(文字列[]引数)を{ Test1をTEST1 = 新しいTest1を()。 test1.run(); // 输出结果メイン test1.start(); // 输出结果スレッド0 } }
1.start
機能を起動すると、新しいスレッドを開始することです。
)開始(とのスレッドを起動するとき、レディ状態にスレッドは、仮想プロセッサスレッドは、JVMによってスケジュールして実行することができることを意味実行可能な状態で示さ。しかし、これは、スレッドがすぐに実行することを意味するものではありません。CPU割り当てられたタイムスライスは、スレッドがタイムスライスを取得した場合にのみ、それはrun()メソッドを実行し始めました。開始()、それはrun()メソッド.RUN()メソッドを呼び出し、繰り返し呼び出すことはできませんあなたが書き換えする必要がありますされ
2.run
繰り返し呼び出すことができるよう、()メソッドと一般会員を実行します。
あなたは直接runメソッドを呼び出し、新しいスレッドを起動しない場合!プログラムがまだこのつのスレッドのみがメインスレッドであり、プログラムの実行は、1つのパス、または注文を実行するために、以下のコードを続行する実行メソッド本体の実装後に待機するので、何の目的マルチスレッドは存在しません。
Startメソッドは、スレッドを開始する前に呼び出されますが、普通のrunメソッドは、メソッドのスレッドを呼び出し、またはメインスレッドで実行します。