私は非常に奇妙な問題に遭遇しました。私のプログラムは次のようになります。
class Outter{
class Inner extends Thread {
public void run(){
// do something
}
}
public void func() {
new Inner().start();
// Thread.sleep() for a while to see if the above thread has finished
// if not stop the thread
}
問題は、内部クラスが実際には実行されないように見えることです。そのため、関数は、本来の処理を実行する前に常に停止します。2 つのスレッドは同時に実行する必要がありますが、実際にはメイン スレッドのみが実行されており、もう 1 つのスレッドは実行状態ですが、ブロックされています。内部クラスを静的クラスに変更しようとしています。今回はうまく機能します。しかし、まだ理由はわかりません。誰かがそれを説明するのを手伝ってくれることを願っています。