new Thread(runnable,name)返回null

时间:2013-07-17 15:14:35

标签: java multithreading

我遇到了多线程应用程序的问题,绑定到按钮停止线程

thread = NULL;

之后我开始另一个线程(使用相同的变量)

thread = new Thread(this, "game");
thread.start();

在新线程之后,线程仍为空,我不知道为什么请帮助。

1 个答案:

答案 0 :(得分:0)

如果没有更多信息,以下内容实际上只是猜测。请在将来显示更多详细信息并说明您为调试问题所做的工作。

  

在新线程之后,线程仍为空,我不知道为什么请帮忙。

构造函数无法返回null,因此会发生其他事情。

Thread thread = null;
thread = new Thread(this, "game");
// thread is guaranteed to be non-null here

也许你在两个线程之间共享线程字段?例如,也许您的主线程启动后台线程,UI线程正在尝试读取它?在这种情况下,您应该使线程在线程之间共享volatile

volatile Thread thread = null;

如果它已经是volatile,那么您正在处理thread字段的不同实例。也许thread字段应标记为static