std::thread join和detach区别

thread detach, join
线程有两种状态,joinable或者detachable,pthread默认创建的线程是joinable的,也可以指定atrribute创建成一个detachable的线程。一个线程被创建后,最终一定要调用join或者detach(或者设置成detachable),以保证最后线程的资源会得到回收。

对于一个joinable的线程,join它后要等到它执行结束,调用线程才能继续向前运行。如果调用线程既希望被创建的线程资源回收,又不会被阻塞在join,那怎么办呢,调用detach,让其自动回收。

join:主线程被阻塞 detach:会分离,子线程自动回收资源

posted @ 2014-03-24 17:53  zzyoucan  阅读(5775)  评论(0编辑  收藏  举报