当程序启动/does_not_start线程时变量初始化

Variable initialization when program starts/does_not_start a thread

本文关键字:线程 变量 初始化 start not 启动 does 程序      更新时间:2023-10-16

你能解释一下程序启动和不启动线程时变量初始化顺序的区别吗?

秒。3.6.2/3 N3797 c++14工作草案:

如果程序启动一个线程(30.3),随后的初始化变量的初始化是无序的在不同翻译单元中定义的变量。否则,变量的初始化顺序是不确定的到在不同翻译中定义的变量的初始化单位。

如果可能的话,请举例说明这条规则。

Unsequenced表示没有顺序——变量可以在不同线程上并发初始化。

不确定序列意味着一个在另一个之前排序——变量在同一个线程中按顺序初始化——但是没有指定哪个先初始化。