我一直在使用 pthread
库在 C 中创建和加入线程。
我什么时候应该从一开始就创建一个分离的线程?与可连接线程相比,它是否提供任何性能优势?
在可连接(默认)线程上不执行
pthread_join()
是否合法?或者这样的线程应该总是在pthread_exit()
ing之前使用detach()
函数吗?
最佳答案
当你知道你不想等待它时使用
pthread_join()
创建一个分离的线程。唯一的性能优势是,当分离的线程终止时,可以立即释放其资源,而不必等待线程加入才能释放资源。不加入可连接的线程是“合法的”;但通常不建议这样做,因为(如前所述)在线程加入之前不会释放资源,因此如果您不加入,它们将无限期地保持绑定(bind)(直到程序退出)。
关于c - 分离与可连接 POSIX 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3756882/