Runnableインターフェースを実装する抽象Baseクラスがあるとしましょう。
public abstract class Base implements Runnable {
protected int param;
public Base(final int param) {
System.out.println("Base constructor");
this.param = param;
// I'm using this param here
new Thread(this).start();
System.out.println("Derivative thread created with param " + param);
}
@Override
abstract public void run();
}
そして、ここにいくつかの派生クラスの1つがあります。
public class Derivative extends Base {
public Derivative(final int param) {
super(param);
}
@Override
public void run() {
System.out.println("Derivative is running with param " + param);
}
public static void main(String[] args) {
Derivative thread = new Derivative(1);
}
}
重要なのは、Baseクラスに毎回コピーするのではなく、一般的なことを実行してもらいたいということです。実際には、正常に実行されており、出力は常に同じです。
基本コンストラクターパラメーター1で作成された派生スレッド派生物はパラメーター1で実行されています
しかし、コンストラクターで抽象メソッドを呼び出すスレッドを開始することは、JAVAでは安全ですか?なぜなら、C ++とC#では、私が知る限り、ほとんどの場合安全ではないからです。ありがとうございました!