java - Thread.sleep() 与 Thread.onSpinWait

标签 java

我有一个自旋等待循环,它正忙于等待设置标志。但是,它可能需要 很多发生这种情况的时间——几分钟,甚至几小时。

Thread.sleep()Thread.onSpinWait​() 更有效率?

最佳答案

在这种情况下, sleep 和自旋锁都不是您想要的。 sleep 是错误的选择,因为你不知道你需要提前睡多久。执行某种自旋锁循环是错误的,因为自旋锁是繁忙的等待,因此会消耗 CPU 周期,并且仅适用于非常短的等待,因为预期资源会很快变得可用。您在这里要做的是设置一个信号量。让线程 1 等待线程 2 设置信号量。

关于java - Thread.sleep() 与 Thread.onSpinWait,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51215310/

相关文章:

Java 选择已绘制的形状,并在其周围绘制矩形

java - 仅获取路径目录并丢弃Java中的文件

javascript - 通过JQuery选择li元素的文本

java - 如何将库打包到 jar 文件中?

java - 无法实现组件的特定布局

java - 如何在jsp页面上显示来自mysql数据库的图像?

Java:需要帮助将大文件逐段读取到数组列表中

java - 在android中链接两个布局

java - 动态克隆 android Activity ?

java - Spring 中的 XSD 客户端