是否有可能获得主线程的线程对象,以及`join()`?

sma*_*arr 5 c++ multithreading c++11

有没有办法像使用C++ 11(或更高版本)工具的任何其他线程一样处理主线程?具体来说,我正在寻找能够join()与主线程.所以,基本上,我想做类似的事情main_thread.join(),但不知道如何获取main_thread对象.

线程构造函数似乎没有提供任何基于例如获得的线程id的工具get_id().该this_thread命名空间还只提供最低限度的功能,但是偏出例如join(),这正是我所期待的.

sma*_*arr 3

正如 @molbdnilo 和 @yohjb 的评论中所指出的(另请参阅当 main() 退出时分离线程会发生什么?),C++11 语义表示当函数main()终止时所有线程都会结束。由于 C++11 没有pthread_exit()等效项,因此无法加入主线程,因为程序无论如何都会结束。

因此,要回答我的问题,这似乎不可能,并且由于 的​​终止语义main(),它不会很有用。