c - 分离与可连接 POSIX 线程

标签 c linux pthreads detach

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

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

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

最佳答案

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

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

关于c - 分离与可连接 POSIX 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3756882/

相关文章:

c - C-整数数组在for循环中产生不同的值

c - 如何使用 C 在 libcurl 中构建 SOAP 请求

python - 将网络生成的配置文件发送到服务器并重新启动服务的方法

linux - 在 Samsung Chromebook 上运行 Google Native Client (nacl_sdk)

c - pthread_join 根据随机全局变量值相应挂起

客户端服务器实现: (a newbie)

c - 二十一点代码间歇性失败

linux - NOOBS 已安装,但无法正常启动,出现内核紧急错误代码 0x00000004”

linux - 多个线程定期更新全局变量,而第三个线程等待读取

c - 优雅地(即最终合作地)暂停线程执行