我最近看了这个std::thread参考。std ::线程移动构造函数
对于移动构造函数,它说:
thread(thread&& other);
移动的构造。构造线程对象来表示由 其他表示的执行线程。 此次调用后其他不再代表 执行的线程。
此外,在下面的例子中有这些行:
int n=0;
std::thread t3(f2, n);
std::thread t4(std::move(t3)); // t4 is now running f2(). t3 is no longer a thread
什么我不明白是什么螺纹t3
和t4
到底会发生? t4
是否等到t3
完成执行?这是什么意思t3
不再是一个线程?
“这个调用后,其他不再代表执行的线程”。 – juanchopanza
那意味着什么?它立即停止执行? –
可能*表示执行线程的C++对象与执行线程* actual *之间存在差异。它类似于'std :: unique_ptr'表示某些内存的潜在所有权,但不是它自己的内存。这是“资源处理”与实际资源。 –