ホームページ >Java >&#&チュートリアル >演習 この拡張スレッドを試してください
この演習では、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 サイトの他の関連記事を参照してください。