C 11 中局部静态变量的线程安全初始化
人们对 C 11 中局部静态变量的线程安全初始化提出了担忧C 及其跨不同标准的演变。让我们在 C 11 的背景下具体解决这个问题。
C 11 标准
第 6.7 节中的 C 11 标准(不是草案)指定:
因此,在C 11中,局部静态变量的线程安全初始化完成。
热门编译器实现
主要编译器,例如:
已正确实现所需的线程安全初始化行为按 C 11 标准。这可以确保示例中的 lg 这样的局部静态变量的构造函数即使在多线程环境中也只能运行一次。
其他注意事项
这很重要需要注意的是,线程安全初始化仅适用于变量本身的初始化。除非采用额外的同步机制,否则通过引用对变量的后续访问不能保证是线程安全的。
以上是C 11 如何保证局部静态变量的线程安全初始化?的详细内容。更多信息请关注PHP中文网其他相关文章!