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

wangzhanlili 2005-12-03 11:52:33
一个线程 在调用 start 后 运行完毕。
if(!thread.isAlive()){
thread.start();
}
怎么不行?
就是说在 调用了一次 start(); 后,第二次就不能再调用了吗?
...全文
483 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一次的
【四轴飞行器的位移控制】控制四轴飞行器的姿态和位置设计内环和外环PID控制回路(Simulink仿真实现)内容概要:本文围绕四轴飞行器的位移控制展开,重点介绍如何通过设计内环和外环PID控制回路来实现对其姿态和位置的精确控制。外环负责根据期望位移生成姿态指令,内环则依据这些指令调节飞行器的实际姿态,从而实现稳定的位置跟踪。整个控制系统在Simulink环境中进行建模与仿真,便于验证控制策略的有效性与鲁棒性。文中详细阐述了四轴飞行器的动力学模型、控制结构设计原理以及PID参数整定方法,帮助读者深入理解飞行器控制的核心机制。; 适合人群:具备自动控制理论基础和Simulink仿真经验的高校学生、科研人员及从事无人机控制开发的工程师。; 使用场景及目标:①用于教学实践中帮助学生掌握多变量控制系统的设计方法;②为无人机姿态与位置控制系统的开发提供可复现的仿真框架;③支持进一步研究高级控制算法(如串级控制、自适应控制)在飞行器中的应用。; 阅读建议:建议读者结合Simulink模型同步操作,动手调试PID参数以观察系统响应变化,加深对内外环协同控制机制的理解,并可在此基础上拓展为非线性或智能控制策略的研究。

62,628

社区成员

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

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