Java でのスレッド実装: Thread.start() と Thread.run() の比較
Java では、同時実行性の基本的な側面は次のとおりです。スレッドの作成と実行。このコンテキストでは、Thread.start() と Thread.run() の違いを理解することが重要です。
Thread.start() は、新しい実行スレッドの開始を担当するメソッドです。呼び出されると、スレッドのスタックをセットアップし、その初期状態を実行可能に設定し、Java 仮想マシン (JVM) によって実行されるようにスケジュールします。対照的に、Thread.run() は、新しいスレッドを作成せずに、呼び出しスレッドの run() メソッド内のコードを直接実行します。
Thread.start() を使用する理由
Thread.run() ではなく Thread.start() を使用することが不可欠です。その理由は次のとおりです。
Thread.run() の直接呼び出し
Thread.run() を呼び出すのは便利に思えるかもしれませんが、次の理由により、このアプローチは避けるべきです。
例
次のコードを考えてみましょう:
public class ThreadExample { public static void main(String[] args) { Runnable task = () -> System.out.println("This is a new thread!"); Thread thread = new Thread(task); // Direct invocation of run() - no multi-threading occurs. // thread.run(); // Correct multi-threading using start(). thread.start(); } }
Thread.run() の直接呼び出しをコメントアウトすると、新しいスレッドが作成されて使用されたことが出力に表示されますが、run() を直接実行するとメインスレッド内でコードが実行され、マルチなしの出力が生成されます。 -threading.
結論
Java では、Thread.start() を呼び出すことがスレッドの作成と実行に推奨される方法です。一方、Thread.run() は、マルチスレッド機能とスレッド管理機能を妨げるため、直接使用しないでください。
以上がJava でのスレッド実行では、Thread.run() より Thread.start() が優先されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。