Detached vs. Joinable POSIX线程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Detached vs. Joinable POSIX线程相关的知识,希望对你有一定的参考价值。

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

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

以上是关于Detached vs. Joinable POSIX线程的主要内容,如果未能解决你的问题,请参考以下文章

线程同步方式

Linux 线程常用线程函数复习《三》

pthread_detach()与pthread_join的区别?

pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate)

C++11多线程中的detach()join()joinable()

C++11多线程,线程对象(thread对象)joinable()join()detach()左值智能指针