ホームページ >Java >&#&チュートリアル >Javaスレッドでの開始と実行の違いは何ですか
public class Test1 extends Thread {
@Override public void run() {
while (true)
{
System.out. println(Thread.currentThread().getName());
}
}
public static void main(String[] args) {
Test1 test1=new Test1();
test1.run(); //出力結果 main
test1.start(); //出力結果 Thread-0
}
}
1.start
start は、新しいスレッドを開始することです。
start() を使用してスレッドを開始すると、スレッドは準備完了状態になり、スレッドによって表される仮想プロセッサが実行可能な状態になります。これは、JVM によって仮想プロセッサをスケジュールして実行できることを意味します。ただし、これはスレッドがすぐに実行されることを意味するものではありません。 CPU がタイム スライスを割り当て、このスレッドがタイム スライスを取得した場合にのみ、run() メソッドの実行が開始されます。 start() を繰り返し呼び出すことはできません。run() メソッドが呼び出されます。run() メソッドは、
#2.run
run() をオーバーライドする必要があるものです。通常のメンバー メソッドと同様に、繰り返し呼び出すことができます。 run メソッドを直接呼び出した場合、新しいスレッドは開始されません。プログラムにはまだ 1 つのスレッド (メイン スレッド) しかなく、プログラムの実行パスも 1 つだけあります。これは引き続き順次実行する必要があり、実行を続行する前に run メソッド本体が実行されるのを待つ必要があります。以下のコードでは、マルチスレッドの目的は達成されません。 start メソッドを呼び出してスレッドを開始します。run メソッドはスレッドの通常のメソッド呼び出しであり、メイン スレッドで引き続き実行されます。以上がJavaスレッドでの開始と実行の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。