[Javaマルチスレッド]カスタムスレッドを作成および使用する2つの方法

[Javaマルチスレッド]カスタムスレッドを作成および使用するための2つの一般的な方法

Javaでカスタムスレッドを作成および使用する2つの一般的な方法を要約します。
ここで実装することにより、最も簡単なカスタムマルチスレッドカテゴリモーティーのクラスを、とだけ含まれているメインの機能テストクラス:ThreadTestクラスの結果を表示するために。

方法1:Threadクラスを継承する

最も単純で直接的な方法は、Threadクラスを継承することです。Threadクラスに必要なrun関数を実装するだけで十分です

利点:明確でわかりやすい。
短所:Javaで継承できるクラスは1つだけであり、使用シナリオは限られています。

class Morty extends Thread {
    
    
	// 定义成员和构造器..
	
	// 定义run函数
	public void run() {
    
    
		System.out.println("我是一个Thread类,平行空间里无数Morty中的一个");
	}

	// 定义各种方法..
}

public class ThreadTest {
    
    
	public static void main(String[] args) {
    
    
		Morty morty0 = new Morty();	// 初始化线程(本例中使用默认构造器)
		morty0.start();				// 启动线程
	}
}

動作結果:

スレッド実行結果

方法2:実行可能なインターフェースを実装する

利点:クラスは複数のインターフェースを実装でき、これは広く適用できます。
短所:Threadクラスを直接継承するほど単純で直接的ではありません(ただし、使用するのと同じように感じます)。

class Morty implements Runnable {
    
    
    // 定义成员和构造器..

    // 定义run函数
    public void run() {
    
    
        System.out.println("我是一个Thread类,平行空间里无数Morty中的一个");
    }

    // 定义各种方法..
}

public class ThreadTest {
    
    
    public static void main(String[] args) {
    
    
        Morty mortyTemp = new Morty();	           // 初始化线程(本例中使用默认构造器)
        Thread morty137 = new Thread(mortyTemp);   // 初始化线程

//		Thread morty137 = new Thread(new Morty()); // 也可以这样简写

        morty137.start();				           // 启动线程
    }
}

動作結果:

実行可能モードの動作結果



(終了。推奨読書:Javaでのマルチスレッド化

おすすめ

転載: blog.csdn.net/weixin_39591031/article/details/110090304