当我尝试启动线程(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()只会执行退出操作。感谢乔恩。

10-05 23:04