假设您在 main 中创建了一个线程(线程 1)。该线程从文件中获取一些输入并创建多个其他线程(线程 2...等)来处理某些内容。退出线程1之前是否必须退出其他线程(线程2...)?如果是这样,我将如何等待线程 1 生成的所有线程完成?
最佳答案
线程之间没有父/子关系。线程都是对等的。哪个线程启动另一个线程没有区别,所有线程都是包含它们的进程的平等部分。
有关从 main
调用 pthread_exit
的特殊规则仅适用,因为从 main
返回会终止进程。其他线程则不存在这样的问题——它们只能通过调用 exit
或类似的函数来终止进程。
请注意,您应该加入或分离每个线程。您可以分离所有线程,然后您永远不必担心加入它们 - 它们只会运行到完成,然后自行清理。
关于c - 在离开启动子线程之前是否必须等待子线程完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20170211/