例如:
#include <thread>
thread_local int n = 1;
void f()
{
++n; // is n initialized here for each thread or prior to entering f()?
}
int main()
{
std::thread ta(f);
std::thread tb(f);
ta.join();
tb.join();
}
从here初始化n时还不清楚。
最佳答案
很简单,并且全部符合规范。每当运行新线程时,就将n
初始化-在您输入任何特定于线程的函数之前。
确切地说,它将被初始化三次。