当我尝试启动线程(u)时,它什么也不做!
这是我班上的东西:
private Updater uc;
Thread t1 = new Thread(uc);
-bunch of other code-
t1.start();
Updater.java:
public class Updater implements Runnable{
public void run(){
System.out.println("I work!");
}
}
输出什么都没有。有人知道为什么吗?
最佳答案
除非我缺少某些内容,否则您永远不会初始化uc:
uc = new Updater();
当您将null传递为Runnable时,Thread只是将null值传递给内部init方法,该方法会从所有Thread构造函数(包括不使用Runnable参数的构造函数)中调用。
如果目标Runnable为null,则线程run()只会执行退出操作。感谢乔恩。