85.4. 等待策略


等待策略会影响当前等待下一个交换发布的消费者线程的等待类型。可以选择以下策略:

Name描述建议

Blocking

阻塞使用 lock 和 condition 变量的策略来等待 Consumers 等待 barrier。

当吞吐量和低延迟不重要时,可以使用此策略。

sleeping

休眠最初启动的策略,然后使用 Thread.yield (),最终作为 OS 和 JVM 的纳纳数,而 JVM 将允许 Consumers 在 barrier 上等待。

此策略在性能和 CPU 资源之间是很好的折衷。在静默周期后,延迟激增可能会发生。

BusySpin

Spin 策略使用忙碌的旋转循环,用于等待障碍的 Consumers。

此策略将使用 CPU 资源来避免系统调用,从而引入延迟。当线程可以绑定到特定 CPU 内核时,最好使用它。

创建

生成使用 Thread.yield ()在初始旋转后等待 Consumers 的策略。

此策略在性能和 CPU 资源之间是很好的折衷,而不会造成显著的延迟激增。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.