1
1
答案取决于你对优化原子的假设。使用原子有两个效果:强制语句的可观察顺序和确保处理器缓存无效。 如果您使用的是英特尔处理器,则可以简单地删除后者的大部分。这是因为处理器保证相同的行为,而不需要进行特定的处理。 然而,对于订购,有一个不同的故事。为了消除排序约束,编译器应该能够证明您没有不同的可观察行为。 实际上,如果您将指针或引用传递给另一个编译单元中的函数,编译器将无法进行优化。另一方面,如果编译器对使用情况有充分的了解,它可以得出这样的结论:不需要内存屏障,并在此基础上消除它们。 消除另一端的记忆障碍是外发研究的一部分,所以你的研究可能不可用,或者可能只涵盖非常简单的案例。
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
rhymes · 如何让线程操作相同的java列表 2 年前 |