今天我遇到了POSIX线程属性,当你第一次使用它们时,它们有点奇怪。我对pthread_attr_setdetachstate
感到有些困惑,其中指出:
POSIX线程默认处于Join状态(创建它的线程),但是为了加入它们,我们必须显式调用
pthread_join()
来加入线程。
即使线程属性设置为pthread_detach
,我们是否需要显式调用detach
?
答案 0 :(得分:3)
不,你甚至不应该这样做:
尝试分离已经分离的线程导致未指定 行为。
所以真的要么是其中之一,而不是两者兼而有之。如果您从一开始就知道您不会联合线程,请使用带有该属性的variant。根据您的系统,这可能会在您的线程启动时节省一些时间和内存。
答案 1 :(得分:0)
不,你没有。任何一个或其他都足够了。
答案 2 :(得分:0)
即使将thread属性设置为detach?
,我们是否需要显式调用pthread_detach()
不,没有必要,here's an illustration。两种方法(将线程创建为分离或pthread_detach()
)都可以正常工作。