gpt4 book ai didi

java - Java中AtomicXXX上lazySet的使用

转载 作者:行者123 更新时间:2023-11-29 06:58:13 25 4
gpt4 key购买 nike

来自这个问题:AtomicInteger lazySet vs. set并形成此链接:https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/package-summary.html

我可以收集以下几点

  • lazySet 可能比 set 更快
  • lazySet 使用 store-store barrier(之前的写入被尊重,但竞争的写入没有,这还没有发生)

我可以从文档中找到一个可以应用它的用例:

  • 当你想清空一个指针来帮助 GC 时使用 lazySet。

lazySet 还有其他实际用例吗?

最佳答案

Caffeine在其许多数据结构中使用惰性或宽松写入。

  • 清空字段时(例如 ConcurrentLinkedStack)
  • 在发布前写入可变字段时(例如 SingleConsumerQueue)
  • 何时可以安全地延迟发布(例如 BoundedBuffer)
  • 当竞争是良性的(例如缓存过期时间戳)
  • 在锁内时(例如 BoundedLocalCache)

ConcurrentLinkedQueue 在发布节点之前使用宽松的写入,并且可能延迟设置节点的下一个字段(在发布之前或指示过时的遍历)。

您可能还喜欢阅读 Linux Kernel Memory Barriers纸。

关于java - Java中AtomicXXX上lazySet的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30455125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com