C++11的std:thread为什么要在线程函数的最外层捕获异常
1个回答
展开全部
t.join()等待子线程myThread执行完之后,主线程才可以继续执行下去,此时主线程会释放掉执行完后的子线程资源。从上面的图片也可以看出,是先输出"in my thread",再输出"in major thread"。
当然了,如果不想等待子线程,可以在主线程里面执行t1.detach()将子线程从主线程里分离,子线程执行完成后会自己释放掉资源。分离后的线程,主线程将对它没有控制权了。如下:
std::thread t1(&HelloWorld::myThread,this);//创建一个分支线程,回调到myThread函数里
t1.detach();
当然了,如果不想等待子线程,可以在主线程里面执行t1.detach()将子线程从主线程里分离,子线程执行完成后会自己释放掉资源。分离后的线程,主线程将对它没有控制权了。如下:
std::thread t1(&HelloWorld::myThread,this);//创建一个分支线程,回调到myThread函数里
t1.detach();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询