ホームページ > Java > &#&チュートリアル > 演習 この拡張スレッドを試してください

演習 この拡張スレッドを試してください

Linda Hamilton
リリース: 2024-11-21 07:07:09
オリジナル
757 人が閲覧しました

Exercício Tente Isto Extendendo Thread

この演習では、Runnable インターフェースを実装する代わりに、Thread クラスを直接拡張することにより、Java でスレッドを作成する方法を学びます。これにより、クラスは Thread メソッドを継承するため、別のスレッドをインスタンス化する必要がなく、スレッドを直接操作することが容易になります。

エクササイズステップ

スレッドクラスを拡張します:
クラスは Thread から継承し、run() メソッドをオーバーライドする必要があります。

クラス コンストラクター:
super(name) コンストラクターを使用してスレッドに名前を付け、start() を直接呼び出して実行を開始します。

run() メソッドをオーバーライドします:
このメソッドはスレッドの動作を定義します。ここで、スレッドはその名前を出力し、ループを実行します。
完全な機能例:

以下はコードです:

// Define a classe que estende Thread
class MyThread extends Thread {
    // Constrói uma nova thread
    MyThread(String name) {
        super(name); // Nomeia a thread
        start();     // Inicia a thread
    }

    // Começa a execução da nova thread
    public void run() {
        System.out.println(getName() + " starting.");
        try {
            for (int count = 0; count < 10; count++) {
                Thread.sleep(400); // Pausa por 400ms
                System.out.println("In " + getName() + ", count is " + count);
            }
        } catch (InterruptedException exc) {
            System.out.println(getName() + " interrupted.");
        }
        System.out.println(getName() + " terminating.");
    }
}

// Classe principal para demonstrar a execução das threads
class ExtendThread {
    public static void main(String[] args) {
        System.out.println("Main thread starting.");

        // Cria uma nova thread
        MyThread mt = new MyThread("Child #1");

        // Executa a thread principal
        for (int i = 0; i < 50; i++) {
            System.out.print(".");
            try {
                Thread.sleep(100); // Pausa por 100ms
            } catch (InterruptedException exc) {
                System.out.println("Main thread interrupted.");
            }
        }

        System.out.println("Main thread ending.");
    }
}

ログイン後にコピー

コードの仕組み
二次スレッドの作成:
「子 #1」スレッドが作成され、start() ですぐに開始されます。

セカンダリ スレッドの実行:
スレッドはループを実行し、メッセージを出力し、反復の間に 400 ミリ秒停止します。

メインスレッドの実行:
一方、メインスレッドは 100ms 間隔でドット (".") を出力します。

プログラム出力(例)

Main thread starting.
Child #1 starting.
.In Child #1, count is 0
..In Child #1, count is 1
...In Child #1, count is 2
... (continua)
Main thread ending.
Child #1 terminating.

ログイン後にコピー

所見
メインスレッドとセカンダリスレッドは同時に実行されます。
run() メソッドにはセカンダリ スレッドのロジックが含まれていますが、メイン スレッドは独立した実行を継続します。

以上が演習 この拡張スレッドを試してくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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