栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么不能重新启动Java Thread对象?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么不能重新启动Java Thread对象?

我知道不可能重新启动使用的Java Thread对象,但是我找不到为什么不允许这样做的解释。即使可以保证线程已完成(请参见下面的示例代码)。

我的看法是,线程可能直接绑定到实际的 本机 资源(出于效率或其他约束),而 本机
资源可以在某些操作系统中重新启动,而在其他操作系统中则不能重新启动。如果Java语言的设计者允许重新启动线程,则他们可能会限制可运行JVM的操作系统的数量。

想到这一点,我想不出一个允许线程或进程在完成或终止后重新启动的操作系统。当一个过程完成时,它就死了。您需要另一个,然后重新启动它。你永远不会复活。

除了底层操作系统所带来的效率和限制问题之外,还有分析和推理的问题。当事物是不可变的或具有离散的,有限的生命周期时,您可以考虑并发。就像状态机一样,它们必须具有终端状态。开始,等待,完成了吗?如果您允许线程复活,就很难轻易推断出类似的事情。

您还必须考虑重新线程的含义。重新创建其堆栈,其状态,是否可以安全地复活?您可以复活异常结束的线程吗?等等。

毛茸茸,太复杂。所有这些都是微不足道的收益。最好将线程保留为不可恢复的资源。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498149.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号