【发布时间】:2009-09-07 06:41:45
【问题描述】:
我遇到了一个非常奇怪的问题。 我的程序如下所示:
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 类更改为静态类。这次效果很好。 但我还是不知道原因,希望有人能帮忙解释一下。
【问题讨论】:
-
请给出一个简短但完整的程序来演示问题。
-
投票结束。用户发布了一个使问题无效的答案。
-
SSCCE (sscce.org) 会很好。
标签: java static multithreading non-static