C++;,静态初始化是否由多个线程执行? < C++ >,在静态初始化期间,我是否需要担心在对象上运行的多个线程,或者它是否保证由单个线程执行?< /P> < P>全局范围>代码>静态< /代码>变量,是的。

C++;,静态初始化是否由多个线程执行? < C++ >,在静态初始化期间,我是否需要担心在对象上运行的多个线程,或者它是否保证由单个线程执行?< /P> < P>全局范围>代码>静态< /代码>变量,是的。,c++,multithreading,C++,Multithreading,对于本地静态s(在函数内部声明),这种保证只适用于C++11及其后版本。有一点需要注意:您的全局范围静态对象是否从其构造函数生成线程?如果是这样,这些线程将在静态初始化期间运行。通常静态初始化是在应用程序启动时完成的,因此,据我所知,目前只有一个线程,从C++11开始,只能由一个线程完成。我打赌有人能在回答中引用标准。最好弄清楚您指的是函数体中的静态变量还是静态全局或类成员,规则是不同的在对象的初始化过程中会发生什么使您对多线程产生警惕?我想到的是静态全局变量。我想做的是在多个类实现中声明静态变

对于本地
静态
s(在函数内部声明),这种保证只适用于C++11及其后版本。

有一点需要注意:您的全局范围静态对象是否从其构造函数生成线程?如果是这样,这些线程将在静态初始化期间运行。

通常静态初始化是在应用程序启动时完成的,因此,据我所知,目前只有一个线程,从C++11开始,只能由一个线程完成。我打赌有人能在回答中引用标准。最好弄清楚您指的是函数体中的静态变量还是静态全局或类成员,规则是不同的在对象的初始化过程中会发生什么使您对多线程产生警惕?我想到的是静态全局变量。我想做的是在多个类实现中声明静态变量,并将它们添加到公共容器中(是的,我知道我不能保证静态初始化的顺序,所以我需要在函数中初始化容器)Hi Luchian,你的意思是“是的,我确实需要担心多线程”还是“是的,在C++11及以后,保证由单个线程执行”?