【发布时间】:2012-04-06 10:49:24
【问题描述】:
1.如果你在一个正在运行的线程上调用 start() 是一个错误 2.如果您在停止的线程上调用 start(),则不会发生任何事情。
不支持在同一个对象上重新启动的原因是什么?
【问题讨论】:
-
这不是骗子。其他问题询问“如何重新启动线程”。这个问题问“为什么不能完成”。不过,“为什么设计师选择......”问题往往没有建设性
-
因为计算机有跳转指令,所以可以执行循环。如果开发人员希望一个线程多次执行某些代码,他们通常选择将其置于循环中,在某个同步对象的顶部等待,然后在需要时发出运行信号——实际上是主体的“重新启动”的代码。 “重新启动”意味着另一个线程状态,“不存在”、“正在运行”和“有点停止但不销毁,以防万一再次需要它”。
标签: java multithreading restart