Java - 线程无法启动

时间:2012-03-28 16:41:05

标签: java multithreading

当我尝试启动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!");
  }
}

输出无效。任何人都知道为什么?

2 个答案:

答案 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);