当我尝试启动Thread(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!");
}
}
输出无效。任何人都知道为什么?
答案 0 :(得分:9)
除非我遗漏了什么 - 你永远不会初始化uc:
uc = new Updater();
当您将Run in作为Runnable传递时,Thread会将null值传递给内部init方法,该方法将从所有Thread构造函数调用,包括不带Runnable参数的构造函数。
如果目标Runnable为null,则Thread run()除了exit之外不会执行任何操作。感谢Jon。
答案 1 :(得分:4)
看起来你传入了一个null的Runnable。尝试:
private Updater uc = new Updater();
Thread t1 = new Thread(uc);