hoge HG = null;
………
class hoge extends Thread {
  int x;
  public hoge(int x){
    if(x < 10){
      this.x = x;
      //this.start();  //←ここでstartしていたが、
    }
  }
  public void run(){
    処理………
    HG = null;      //ここが実行されない!?
  }
}
………
if(HG == null){
  HG = new hoge(n);
  HG.start();        //問題があるので、こちらでstart()するようにした。
}
--------------------------------------------------------
最初は、hoge()内で、this.start()でスレッド開始していたのですが、
HG == null とならずに、二度とrun()が実行されなくなってしまいました。
HG = nullが飛ばされてしまっているかのようです。
hoge()内でスタートさせるのをやめたら、問題はなくなりました。
そこで質問なのですが、class hoge extends Thread {}
のようなクラスのコンストラクタでは、スレッドを開始してはいけないのでしょうか?