当前位置: 首页 > 面试题库 >

Java中sleep和join之间的相似性

冯浩旷
2023-03-14
问题内容

正如问题所暗示的,我想知道线程上的sleep和join方法之间的相似性。我经历了许多描述睡眠和加入方法之间差异的问题。但是我想知道不同的场景,在这些场景中,睡眠和加入方法可以互换使用。根据我的想法,以下代码应该以相同的方式工作。我有一个主线程,在其中启动了一个新线程(仅1个),并且我希望主线程等待新线程完成一段时间。代码如下:

   newThread.join(10000)

要么,

  Thread.sleep(10000)

但是,当我运行这段代码时,没有得到预期的结果。为什么会这样呢?从技术上来说应该是正确的吗?


问题答案:

我不清楚您的实际问题是什么,但是您的第三句话说:“我想知道可以交替使用睡眠和加入方法的不同情况。”

从实用的角度来看,如果你拥有一支由软件开发人员编写的生产代码的工作,就不会有 任何
场景中,其他开发商将允许您使用连接(长)作为替代的睡眠(长)。没办法,没有办法!在某些情况下它会真正起作用并不重要。

生产代码应可读。该代码的意图对于其他人应该显而易见。它应遵守“最不惊奇的原则”(请参阅​​“ 干净代码: Robert C. Martin
编写的敏捷软件工艺手册”
)。这意味着,当您编写foobar.join(n)时,您应该期望foobar线程死亡。您可能已经准备好处理超时情况,但这应该是例外,而不是规则。没有其他正当理由调用join(n)。其他任何事情都是“
hack”,我们不会在生产代码中使用hack。



 类似资料:
  • 本文向大家介绍Java中的Wait和Sleep之间的区别,包括了Java中的Wait和Sleep之间的区别的使用技巧和注意事项,需要的朋友参考一下 Wait()-线程释放此监视器的所有权,并等待直到另一个线程通知该对象的监视器上正在等待通过调用方法或方法唤醒的线程。然后,线程等待,直到它可以重新获得监视器的所有权并恢复执行。 Sleep()-此方法使当前正在执行的线程进入休眠状态(暂时停止执行)达

  • 问题内容: 和之间的线程有什么区别? 我是否了解线程仍处于运行模式并使用CPU周期,但是不会消耗任何CPU周期正确吗? 为什么我们都 和:如何实现他们在一个较低的水平有什么不同? 问题答案: 可以被另一个notify正在等待等待的监视器调用的线程“唤醒” 。此外,必须在监视对象的块中发生,而sleep不会: 此时,当前正在执行的线程将等待并释放监视器。另一个线程可能会做 (在同一mon对象上),第

  • 问题内容: 这两个连接将给我相同的结果: 与 语句之间的性能或其他方面有什么区别吗? 不同的 SQL 实现之间是否有所不同? 问题答案: 它们在功能上是等效的,但阅读起来可能更清晰,尤其是在查询中包含其他联接类型(即or或)的情况下。

  • 我正在尝试了解java序列化机制,我几乎没有疑问 请回答以下有关java序列化的问题: < li >为什么使用< code > OOS . defaultwriteobject();?根据这篇文章,这是为了向后兼容。我不太明白它是怎么做到的。序列化的一个不兼容的变化是在新版本中删除一个字段。这意味着旧版本将不得不设置缺省值,这些值有时对用户无效。这与新版本添加新字段并允许设置缺省值有何不同? <

  • 本文向大家介绍inner join和left join之间的区别详解,包括了inner join和left join之间的区别详解的使用技巧和注意事项,需要的朋友参考一下 前言 关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了。 需求是从数据库查数据,在前端以柱形图的形式展现出来,

  • 问题内容: 我需要在基于Java的应用程序中使用Wordnet。我想要: 搜索同义词集 找到同义词集之间的相似性/相关性 我的应用程序使用RDF图,我知道Wordnet中有SPARQL端点,但是我想最好有一个数据集的本地副本,因为它不是太大。 我发现以下罐子: 通用库 -JAWS http://lyle.smu.edu/~tspell/jaws/index.html 通用库 -JWNL http: