有没有办法像使用C ++ 11(或更高版本)工具的任何其他线程一样处理主线程?
具体来说,我正在寻找具有主线程join()
的能力。所以,基本上,我想做一些事情:main_thread.join()
,但不知道如何获取main_thread
对象。
线程构造函数似乎不提供任何基于例如使用get_id()
获得的线程ID的工具。 this_thread
命名空间也只提供最少的功能,但是错过了join()
,这正是我要找的。 p>
答案 0 :(得分:3)
正如@molbdnilo和@yohjb的评论中所指出的那样(参见What happens to a detached thread when main() exits?),C ++ 11语义表明当main()
函数终止时所有线程都会结束。
由于C ++ 11没有等效的pthread_exit()
,因此主线程无法连接,因为程序无论如何都会结束。
所以,为了回答我的问题,它似乎不可能,并且使用main()
的终止语义,它将不会非常有用。