【问题标题】:What is the state after a Thread crashed?线程崩溃后的状态是什么?
【发布时间】:2012-11-12 16:04:58
【问题描述】:

我持有一个线程列表,每个线程都与一个 Runnable 相关联。在运行了一段时间后,其中一些变成了 TERMINATED 状态,尽管它们不应该因为在 run() 中实现了 while(true)。所以我猜那些已经崩溃了,对吗?

编辑:每个线程都独立于其他线程。

【问题讨论】:

  • 每个线程都是独立的。这些线程是否已完成处理并符合 GC 条件?

标签: java multithreading crash runnable


【解决方案1】:

他们可能自己抛出了异常,或者是interrupted by another thread。我假设您没有实施流控制来跳出 while 循环(通过异常)然后干净地完成处理。

【讨论】:

  • 我的控制台被数据淹没了,如果有异常我可能不会注意到,我猜。但是线程状态真的会终止吗?我问是因为我不知道如何自己崩溃一个线程。
  • @YannickWald 可能是因为你不能“崩溃”一个线程。您所能做的就是处理尚未捕获的错误或异常。这使线程处于与正常退出相同的状态。
  • @YannickWald 首先要做的是让您的控制台得到控制。过滤以减少音量,或将其映射到您可以搜索的文件。其他程序员可以告诉您,尽管有一个 while(true) 循环,但错误或异常会导致线程进入 TERMINATED。只有你的程序可以告诉你具体的错误或异常,你需要这些信息来决定下一步做什么。
猜你喜欢
  • 2011-10-03
  • 1970-01-01
  • 2013-05-03
  • 2010-10-25
  • 2019-03-29
  • 2018-07-05
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
相关资源
最近更新 更多