c - 分离与可连接 POSIX 线程

我一直在使用 pthread 库在 C 中创建和加入线程。

  1. 我什么时候应该从一开始就创建一个分离的线程?与可连接线程相比,它是否提供任何性能优势?

  2. 在可连接(默认)线程上不执行 pthread_join() 是否合法?或者这样的线程应该总是在pthread_exit()ing之前使用detach()函数吗?

最佳答案

  1. 当你知道你不想等待它时使用 pthread_join() 创建一个分离的线程。唯一的性能优势是,当分离的线程终止时,可以立即释放其资源,而不必等待线程加入才能释放资源。

  2. 不加入可连接的线程是“合法的”;但通常不建议这样做,因为(如前所述)在线程加入之前不会释放资源,因此如果您不加入,它们将无限期地保持绑定(bind)(直到程序退出)。

https://stackoverflow.com/questions/3756882/

相关文章:

linux - 我应该使用什么 Linux shell?

linux - 从命令行将文本附加到文件而不使用 io 重定向

python - 如何列出导入的模块?

c++ - 如何在 Linux 上执行适用于 x86、arm、GCC 和 icc 的原子操作?

python - 通过比较两个绝对路径获取相对路径

c - stdout 和 STDOUT_FILENO 的区别

python - 在 matplotlib 中设置颜色条范围

python - 遍历python中的对象属性

linux - 为什么 docker 有能力运行不同的 linux 发行版?

python - 在 Python 中,使用 argparse,只允许正整数