Posix线程属性&分离国家

时间:2012-12-16 08:19:57

标签: c attributes pthreads posix

今天我遇到了POSIX线程属性,当你第一次使用它们时,它们有点奇怪。我对pthread_attr_setdetachstate感到有些困惑,其中指出:

  

POSIX线程默认处于Join状态(创建它的线程),但是为了加入它们,我们必须显式调用pthread_join()来加入线程。

即使线程属性设置为pthread_detach,我们是否需要显式调用detach

3 个答案:

答案 0 :(得分:3)

不,你甚至不应该这样做:

  

尝试分离已经分离的线程导致未指定   行为。

所以真的要么是其中之一,而不是两者兼而有之。如果您从一开始就知道您不会联合线程,请使用带有该属性的variant。根据您的系统,这可能会在您的线程启动时节省一些时间和内存。

答案 1 :(得分:0)

不,你没有。任何一个或其他都足够了。

答案 2 :(得分:0)

  

即使将thread属性设置为detach?

,我们是否需要显式调用pthread_detach()

不,没有必要,here's an illustration。两种方法(将线程创建为分离或pthread_detach())都可以正常工作。