要将引用传递给线程,您必须使用std::reference_wrapper,您可以使用std::ref获得。因此您的代码变为:...
~thread(): 析构函数,当线程对象的生命周期结束时(例如,线程对象超出作用域或被删除),该析构函数会被自动调用。你不需要在你的代码中显式地调用线程对象的析构函数。如果一个std::thread对象在join或detach之前被析构则调用std::terminate()终止函数,因此在调用析构函数前需要确保线程已经被detach或者join。 线程...
如果线程在函数之前结束——就要查看是否因为线程函数使用了局部变量的引用——而后再确定一下程序可能会退出的途径,无论正常与否,有一个简单的机制,可以解决这个问题。 一种方式是使用“资源获取即初始化方式”RAII,Resource Acquisition Is InitializationRAII,ResourceAcquisitionIsInitialization,提供一个类,在析构函数中...