一个线程 调用了一次 start(); 后,第二次就不能再调用了吗?

wangzhanlili 2005-12-03 11:52:33
一个线程 在调用 start 后 运行完毕。
if(!thread.isAlive()){
thread.start();
}
怎么不行?
就是说在 调用了一次 start(); 后,第二次就不能再调用了吗?
...全文
484 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dztc 2005-12-23
  • 打赏
  • 举报
回复
up
lyj830223 2005-12-05
  • 打赏
  • 举报
回复
学习,学习
crazycy 2005-12-03
  • 打赏
  • 举报
回复
首先你应该判断thread对象是否为null;

不知道楼主说的不行是抛出了什么异常?
kingfish 2005-12-03
  • 打赏
  • 举报
回复
线程从run()退出后已经处于TERMINATED状态,属于DEAD线程了。 再调用start会有异常。
wangzhanlili 2005-12-03
  • 打赏
  • 举报
回复
但是我想不new 一个,就用以前的引用 再 start()一次,不行啊。
也没有报任何错误 就是 run() 方法没有执行。
jingweicool 2005-12-03
  • 打赏
  • 举报
回复
在调用start()之前,首先new 一个thread对象,然后判断thread对象是否为null,如果不为null,则用while()循环调用start()方法即可。
cenlmmx 2005-12-03
  • 打赏
  • 举报
回复
觉得应该可以啊,thread只是个引用啊
f_acme 2005-12-03
  • 打赏
  • 举报
回复
如果一个线程结束后,要想重新start(),是要重新new一次的

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧