我一直在使用pthread库在C中创建和加入线程。
pthread
什么时候应该从一开始就创建分离的线程?与可连接线程相比,它具有任何性能优势吗?
不在pthread_join()可连接(默认)线程上执行合法操作吗?还是这样的线程应该在使用detach()之前始终使用该函数pthread_exit()?
pthread_join()
detach()
pthread_exit()
当您知道不想等待时,创建一个分离线程pthread_join()。唯一的性能好处是,当分离的线程终止时,可以立即释放其资源,而不必等到线程加入后才可以释放资源。
不加入可连接的线程是“合法的”。但是通常不建议这样做,因为(如前所述)在线程加入之前,资源不会被释放,因此,如果您不加入线程,则资源将无限期地被束缚(直到程序退出)。