【问题标题】:Can't execute code after Thread.currentThread().join()Thread.currentThread().join() 后无法执行代码
【发布时间】:2016-05-03 15:19:18
【问题描述】:

当我写Thread.currentThread().join(); 时,我无法在该行之后执行代码。 如果我删除它,我会得到错误。 是否有类似的那一行让我执行我的其余代码。

【问题讨论】:

  • 我们需要看看你做了什么。这个问题很模糊
  • stackoverflow.com/questions/37006829/…我的完整代码在那篇文章中
  • @ManelChaabene 请发帖minimal, complete, verifiable example。几乎所有这些代码都与此问题中的问题无关(例如,this code 复制了该问题)。
  • 在链接的问题中,似乎试图让程序无限期地等待,但它没有使用无限循环,而是调用Thread.currentThread().join(),我不能因为爱我发现有任何用处,除非可能与InterruptedExceptioncatch 块结合使用。
  • @Mena 我最近看到了几个问题,比如这个问题,人们在Thread.currentThread() 上调用我从未想过尝试的方法。

标签: java


【解决方案1】:

Thread.join 等待给定线程完成(“死”是docs 中使用的表达式),然后恢复当前执行。

如果您要加入当前线程 (Thread.currentThread()),那么您实际上是在永远等待,除非捕获并处理了 InterruptedException,并以使执行停止的方式进行处理。

请注意,您在此之后的行中遇到的任何“错误”都可能无关,并且会提醒一个新问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多