gpt4 book ai didi

c++ - 如何保持进程运行?

转载 作者:太空狗 更新时间:2023-10-29 20:29:17 24 4
gpt4 key购买 nike

我有一个启动多个线程的进程,这些线程执行某些操作、监听某些端口等。

启动所有线程后,主线程当前进入死循环:

是这样的:

int main()
{
//start threads
while (true)
{
sleep(1000);
}
}

额外的 sleep 确保主线程不会吃掉处理器。

这个方法可以吗?是否有关于流程如何保持活跃的行业标准?谢谢。

编辑:一些说明:

  • 线程是监听器,因此 joinWaitForSingleObject 不是一个选项。通常我可以在这里使用 join,但线程是由第三方客户端库启动的,我无法控制它们。
  • 从设计的角度来看,在主线程中进行一些处理是没有意义的。

最佳答案

.部分摘自 Linux Daemon Writing HOWTO ,我假设你想要这样的东西:

int main() {
pid_t pid;

/* Fork off the parent process */
pid = fork();
if (pid < 0) {
exit(EXIT_FAILURE);
}
/* If we got a good PID, then
we can exit the parent process. */
if (pid > 0) {
exit(EXIT_SUCCESS);
}
// now start threads & do the work

for( thread *t : threads ) {
join( t );
}

return 0;
}

这样主进程将退出,子进程将生成线程来完成工作。最后,子进程将在退出之前等待这些线程完成。

关于c++ - 如何保持进程运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10394986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com