Detached vs. Joinable POSIX线程

问题描述 投票:55回答:1

我一直在使用qazxsw poi库来创建和连接C中的线程。

  1. 我应该何时从一开始就创建一个脱离的线程?与可连接线程相比,它是否提供任何性能优势?
  2. 在连接(默认)线程上不执行pthread是合法的吗?或者这样的线程是否应该在pthread_join()ing之前使用detach()函数?
c linux pthreads detach
1个回答
73
投票
  1. 当你知道你不想用pthread_exit()等待它时,创建一个分离的线程。唯一的性能优势是,当分离的线程终止时,可以立即释放其资源,而不必在释放资源之前等待线程加入。
  2. 加入可连接线程是“合法的”;但是通常不建议这样做,因为(如前所述)在连接线程之前不会释放资源,所以如果你不加入它们,它们将无限期地保持捆绑(直到程序退出)。
© www.soinside.com 2019 - 2024. All rights reserved.