Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 局部静态变量的线程安全初始化效率如何?_C++_Multithreading_C++11_Static Variables - Fatal编程技术网

C++ 局部静态变量的线程安全初始化效率如何?

C++ 局部静态变量的线程安全初始化效率如何?,c++,multithreading,c++11,static-variables,C++,Multithreading,C++11,Static Variables,在VC2015和最新版本的Clang和GCC(以及根据C++11标准)中,局部静态变量的初始化是线程安全的 在上述编译器中实际实现这一点的效率如何?他们使用互斥锁吗 我正在考虑编写一个高性能日志库,在每个调用站点(如)使用一个静态对象,这会很慢吗?静态变量的初始化在程序的每次运行中都会发生一次,因此“效率”问题可能并不重要。它实际上是特定于编译器实现的。GCC和Clang是开源的,您可以自己检查它的用途。@NeilButterworth,但每次调用函数时都要检查初始化是否完成。但速度并不慢,如果

在VC2015和最新版本的Clang和GCC(以及根据C++11标准)中,局部静态变量的初始化是线程安全的

在上述编译器中实际实现这一点的效率如何?他们使用互斥锁吗


我正在考虑编写一个高性能日志库,在每个调用站点(如)使用一个静态对象,这会很慢吗?

静态变量的初始化在程序的每次运行中都会发生一次,因此“效率”问题可能并不重要。它实际上是特定于编译器实现的。GCC和Clang是开源的,您可以自己检查它的用途。@NeilButterworth,但每次调用函数时都要检查初始化是否完成。但速度并不慢,如果您需要该功能,您将无法手动完成更快的操作。@Jonatan Fair point.related: