可拆卸线程的推荐做法是什么:pthread_detach还是pthread_attr_setdetachstate?

时间:2017-10-23 07:59:24

标签: pthreads

要创建可拆卸的Posix线程,有两种解决方案:

  1. pthread_attr_t ThreadAttr; pthread_attr_init(安培; ThreadAttr); pthread_attr_setdetachstate(& ThreadAttr,PTHREAD_CREATE_DETACHED);在pthread_create(...); pthread_attr_destroy(安培; ThreadAttr)

  2. pthread_detach(...)

    Prois&各解决方案的结合?

1 个答案:

答案 0 :(得分:0)

pthread_detach的语法更简单。基于线程属性的方法为实现提供了优化新线程创建的机会,因为它不必支持线程上pthread_detachpthread_join的未来调用。

此外,根据POSIX,将detachstate属性设置为PTHREAD_CREATE_DETACHED是创建不可连接线程的唯一方法,pthread_detach不会将可连接线程转换为不可连接线程。但是glibc gets this wrong,所以对你来说可能并不重要。