为什么原子写入在编译器中没有被优化
问题:为什么编译器不合并冗余的原子写入单个原子具有相同的值变量?
解释:
C 11/14 标准允许将原子变量的连续存储折叠或合并到单个存储中。在某些情况下,即使商店具有不同的值,也可以执行此优化。然而,由于多种因素,编译器目前不会执行此优化。
避免优化的原因:
解决方案和未来的考虑因素:
目前,没有办法显式地控制这种优化C 11/14 标准。然而,扩展 std::atomic API 的讨论正在进行中,以使程序员能够更好地控制此类优化。这可以使编译器在有用时执行优化而不违反排序规则。
替代方法:
使用易失性原子变量可以防止编译器优化原子存储。然而,这并不是一个万无一失的解决方案,在某些情况下仍可能导致意外行为。
以上是为什么编译器不优化冗余原子写入?的详细内容。更多信息请关注PHP中文网其他相关文章!