我希望从进程中启动一个线程,并将其分离并终止进程。但是线程将在后台持续运行。我能用c++11实现这一点吗?
我分离了我的线程,就像这样:线程(&thread_func,param1,param2).detach();
但是一旦进程被终止,它就会被终止。
发布于 2017-09-07 09:26:42
分离并不等同于在后台运行。如果您分离了一个线程,那么您只需告诉操作系统“我不想在线程退出后手动加入它,请帮我处理一下”。但是,当主进程退出时,操作系统通常会杀死所有子线程/进程。
所以你想要的是做个导演。但是,将进程转换为deamon (请注意,不能将线程去守护)是依赖于操作系统的。在linux上,您可以调用daemon函数:
http://man7.org/linux/man-pages/man3/daemon.3.html
我不知道如何在Windows或其他操作系统上这样做。此外,您可能希望阅读以下内容:
https://stackoverflow.com/questions/46092502
复制相似问题