c - C/C++ 中的多线程,无需等待线程完成
问题描述
我看到的所有关于多线程的例子都在方法中使用了这个main
方法来等待线程完成:
pthread_join(thread_id, NULL);
但是如果我不想让它等待呢?我希望我的 main 函数在线程正在工作时继续,但同时,我不希望 main 在线程存在之前退出。这在 C/C++ 中可能吗?
解决方案
如果您想避免使用pthread_join()
, thenpthread_detach()
是一个选项。从手册页:
int pthread_detach(pthread_t 线程);
pthread_detach() 函数将线程标识的线程标记为已分离。当一个分离的线程终止时,它的资源会
自动释放回系统,而不需要
另一个线程加入到终止的线程中。如果进程使用 exit(3) 终止(或者等效地,如果主线程返回),它不会阻止线程终止。
推荐阅读
- r - 合并 df 中的列
- javascript - 我们如何为 NodeJS 应用程序制作类图?
- r - 通过连续变量预测分类变量
- crystal-lang - 查看有关 HTTP::Server 的指标或更多见解
- python - JSONDecodeError:期望值:第 1 行第 1 列(字符 0)- 不适用于 Python 3.8
- r - reactiveValuesToList 的行为不符合预期
- python - 从 Pandas 数据帧的每一行中获取前 N 个值及其各自的列名
- python - 如何在 ubuntu 18.04 64bit 上安装 pycurl 7.43
- android - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.view.ViewGroup.addView(android.view.View)”
- javascript - Paypal API 集成错误:使用“details.seller_receivable_breakdown.gross_amount”表示未定义