Javaスレッドでの開始と実行の違いは何ですか

WBOY
リリース: 2023-04-20 12:37:18
転載
1730 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート