首页 > 解决方案 > C/C++ 中的多线程,无需等待线程完成

问题描述

我看到的所有关于多线程的例子都在方法中使用了这个main方法来等待线程完成:

 pthread_join(thread_id, NULL); 

但是如果我不想让它等待呢?我希望我的 main 函数在线程正在工作时继续,但同时,我不希望 main 在线程存在之前退出。这在 C/C++ 中可能吗?

标签: cmultithreading

解决方案


如果您想避免使用pthread_join(), thenpthread_detach()是一个选项。从手册页

int pthread_detach(pthread_t 线程);

pthread_detach() 函数将线程标识的线程标记为已分离。当一个分离的线程终止时,它的资源会
自动释放回系统,而不需要
另一个线程加入到终止的线程中。

如果进程使用 exit(3) 终止(或者等效地,如果主线程返回),它不会阻止线程终止。


推荐阅读