ホームページ  >  記事  >  Java  >  Java: 匿名内部クラスを使用してメソッド内でスレッドを定義および開始する

Java: 匿名内部クラスを使用してメソッド内でスレッドを定義および開始する

高洛峰
高洛峰オリジナル
2016-12-15 13:17:561416ブラウズ

次のコードは、メソッド内の匿名内部クラスを通じてスレッドを定義し、その run() メソッドをオーバーライドして、スレッドを直接開始する方法を示しています。

このようなコードは、クラス内で新しいスレッドを開始することによってサイドタスクを実行するために使用できます。通常、そのようなタスクはクラスの主要な設計コンテンツではありません。

package com.zj.concurrency;
 
public class StartFromMethod {
    private Thread t;
    private int number;
    private int count = 1;
 
    public StartFromMethod(int number) {
       this.number = number;
    }
 
    public void runTask() {
       if (t == null) {
           t = new Thread() {
              public void run() {
                  while (true) {
                     System.out.println("Thread-" + number + " run " + count
                            + " time(s)");
                     if (++count == 3)
                         return;
                  }
              }
           };
           t.start();
       }
    }
 
    public static void main(String[] args) {
       for (int i = 0; i < 5; i++)
           new StartFromMethod(i).runTask();
    }
}

結果:

スレッド 0 実行 1 回

スレッド 0 実行 2 回

スレッド 1 実行 1 回

スレッド 1 実行 2 回

スレッド 2 実行 1 回

スレッド 2 実行 2 回

スレッド 3 実行 1 回

スレッド 3 実行 2 回

スレッド 4 実行 1 time(s)

Thread-4 run 2 time(s)


その他の Java: 匿名内部クラスを使用してメソッド内でスレッドを定義および開始する 関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。