开发者

should we explicitly join a thread to finish

should we explicitly join a thread to finish? I mean开发者_JS百科 is this like process world: when we don't wait for them to finish we got zombie processes.


Not necessarily; you can always detach a thread if you don't wan't to explicitly wait for it.

There are a few things to consider:

  • If you don't join a non-detached thread it will become a zombie thread (yes, there are such things)
  • If you don't join a thread, your main thread might end before the "child" ends
  • Once you detach a thread there is no way to attach it back

How do you detach a thread ? There are two ways:

detachstate = 1;
rc = pthread_attr_setdetachstate(&attr, detachstate);
if (rc) {
    handle error;
}

pthread_create(&thr, &attr, th_fun, NULL);

And the second way

void *th_fun(void *arg)
{
    pthread_detach(pthread_self());
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜