分离与可连接的POSIX线程

我一直在使用pthread库在C中创build和连接线程。

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

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

  1. 当你知道你不想用pthread_join()等待它时创build一个分离的线程。 唯一的性能好处是,当分离的线程终止时,其资源可以立即释放,而不必等待线程在资源释放之前被连接。

  2. 不join可连接的线程是“合法的”; 但通常不可取,因为(如前所述)资源在线程join之前不会被释放,所以如果不join,它们将一直保持无限期(直到程序退出)。