我遇到了一个非常奇怪的问题。我的程序如下所示:
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
}
问题是 Inner 类似乎从未真正运行过。所以 func 总是会在它做它应该做的事情之前停止它。两个线程应该并发运行,但实际上只有主线程在运行,另一个处于运行状态,但是被阻塞了。我尝试将 Inner 类更改为静态类。这次效果很好。但我仍然不知道原因,希望有人能帮忙解释一下。