Thread类的onSpinWait()方法-Java 9

问题描述 投票:29回答:4

[学习Java 9时,我遇到了Thread类的新方法,称为onSpinWait​。根据javadocs,此方法用于此:

表示呼叫者暂时无法继续通话,直到其他活动中一项或多项动作的发生。

有人可以帮我理解这种方法,提供真实的例子或场景吗?

java multithreading concurrency java-threads spinlock
4个回答
20
投票

与x86操作码onSpinWait​相同(并且可能编译为),并且等效于Win32宏PAUSE,GCC的YieldProcessor和C#方法__mm_pause()


17
投票

纯系统提示!


7
投票

我只想在阅读文档及其源代码后再加上2美分。此方法[[might


7
投票
对于一个真实的例子,假设您要实现异步日志记录,即想要记录某些内容的线程不想等待其日志消息被“发布”(例如写入文件),只要它最终会(因为它们必须要做真正的工作。)
© www.soinside.com 2019 - 2024. All rights reserved.