将参数传递给std::thread()
时,生成新线程的线程是否会等到所有参数都完全复制到新线程本地存储中?
简单的例子:
void f()
{
int array[10];
........ //done something with array
std::thread th(someF, array); //assuming that someF accepts int[]
th.detach();
}
我是否应该自动假设所有数据在f()
结束之前都已安全复制?我看到的一种情况,假设f()
不等待,并且全力以赴,那th
就是试图复制array
正在被破坏的东西。