我有一个单例类,它也是Runnable(和Observable)。当我尝试从main启动线程时,它不会创建新线程并且卡在主循环中。
public class A extends Observable implements Runnable
{
private static A instance = null;
private A() {
}
public static A getInstance() {
if(instance == null) {
instance = new A();
}
return instance;
}
@Override
public void run()
{
while (true) {
System.out.print("\nSleeping");
// sleep
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.print("\n[Error]");
}
}
}
}
和主要课程:
Thread thread = new Thread(A.getInstance());
thread.run();
System.out.print("\nAfter...");
我看不到" After"记录,只是"睡眠"在一个循环中。为什么呢?
答案 0 :(得分:1)
你正在调用run(),而不是start()。