java - 原子整数 lazySet 性能提升

标签 java multithreading performance concurrency atomic

文章“Atomic*.lazySet is a performance win for single writers”介绍了 lazySet 是一种弱 volatile 写入(从某种意义上说,它充当存储存储而不是存储加载栅栏)。但我不明白如何利用半 volatile 写入来提高并发队列性能。它究竟是如何提供超低延迟的 claimed by Menta-queue

我已经阅读了它的实现及其对堆栈溢出问题的声明:“How is lazySet in Java's Atomic* classes implemented”和“Atomic Integer's lazySet vs set”。

最佳答案

x86 上 volatile 写入的问题是它会发出完整的内存屏障,这会导致停顿,直到 store buffer。被排干。同时,x86 上的 lazySet 是一个简单的存储。它不需要刷新存储缓冲区中等待的所有先前存储,从而允许写入线程全速进行。

这在 Martin Thompson's article 中有一些描述。 .

关于java - 原子整数 lazySet 性能提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840733/

相关文章:

performance - 使用 webpack devtool=eval 显示跨源 React 错误边界错误?

java - 如何同时安装java7和java 8?

java - 有没有办法从 Java 中的列表列表中删除子列表?

java - 如何使用扩展Activity实现onClicklistener的多个列表项点击

c++ - 我怎样才能并行化一个for使用boost?

c++ - 如何进一步优化这个简单的算法?

java - Lucene查询语法中AND和+有什么区别

c# - 多定时器 WPF 应用程序,调用线程必须是 STA 错误

c++ - POSIX线程体验? (或者推荐更好的)

performance - 加速 MATLAB 中的随机数生成