[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でのマルチスレッド化)