検索
ホームページJava&#&はじめるJavaスレッドのstartメソッドとrunメソッドの違いは何ですか

Javaスレッドのstartメソッドとrunメソッドの違いは何ですか

違いは次のとおりです:

Java のスレッドは Java.lang.Thread を通じて実装されることがわかっているので、Thread オブジェクトをインスタンス化できます。スレッドを作成し、start() を呼び出してスレッドを開始するために使用されます。ただし、Thread の特定のメソッド run() でもスレッドを開始できます。では、これら 2 つのメソッドの違いは何でしょうか?

スレッドのステータス

在Java当中,线程通常有五种状态:创建、运行、阻塞、等待、终止
NEW------------------->新建状态,没有调用start()之前的状态
RUNNABLE---------->运行状态,(running执行中,ready就绪(等待cpu时间片))
BLOCKED------------>阻塞状态,
WAITING-------------->等待状态,没有明确的等待结束时间,调用wait()
TIMED_WAITING—>超时等待状态,有明确的等待时间,如:sleep(xxx)
TERMINATED-------->终止状态

マルチスレッドの原則:

通常、スレッドを開始するには thread new を使用し、次に start メソッドを呼び出して開始します。スレッドは実行状態の準備が整い、CPU スケジューリングを待機してから、スレッド内で run() メソッドを実行します。start メソッドを使用すると、真のマルチスレッド操作が実現します。これは、現時点では、待機せずに次のコードの実行を続けることができるためです。メソッドを実行して完了します。これはマルチスレッドと呼ばれます。

スレッドを直接使用して run メソッドを実行するとどうなりますか?

run メソッドはスレッド内の通常のメソッドであるため、run() メソッドが直接呼び出された場合、プログラムにはメイン スレッドが 1 つしかないため、この時点ではメイン スレッドで実行されます。 2 つのスレッドがあり、すべて run() メソッドを直接呼び出すため、それらの実行順序は順番に実行する必要があり、マルチスレッドの目的は達成されません。

無料の学習ビデオ共有: Java ビデオ チュートリアル

コード比較

public class ThreadDemo5 {
    public static final boolean flag=false;
    public static void main(String[] args) {
        Thread t1=new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        });
        t1.start();
    }
}

start() メソッドを呼び出します。スレッド名はデフォルトです

Javaスレッドのstartメソッドとrunメソッドの違いは何ですか

public class ThreadDemo5 {
    public static final boolean flag=false;
    public static void main(String[] args) {
        Thread t1=new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        });
        t1.run();
    }
}

run() を呼び出し、スレッド名は main

Javaスレッドのstartメソッドとrunメソッドの違いは何ですか

関連する推奨事項:

Java 入門チュートリアル

以上がJavaスレッドのstartメソッドとrunメソッドの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、