gpt4 book ai didi

C++:是否使用 IIFE 线程安全初始化静态局部变量?

转载 作者:行者123 更新时间:2023-12-01 14:44:11 27 4
gpt4 key购买 nike

以下代码是线程安全的吗? (使用 IIFE 初始化静态局部变量。)

int MyFunc(){

static int Val = ([]()
{
return 1 + 2 + 3 + 4; // Real code is more complex, but thread-safe
})();

return Val;

}

最佳答案

是的。 C++11(及更高版本)保证在尝试初始化静态局部变量的多个线程之间没有数据竞争。如果 lambda 中的代码是线程安全的,则初始化也是如此。

使用 lambda、函数调用或构造函数不会改变初始化的线程安全性。

关于C++:是否使用 IIFE 线程安全初始化静态局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58869660/

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