说到线程的分离状态,我认为,之所以会有这个状态,是因为系统对某些线程的终止状态根本不感兴趣导致的。
我们知道,进程中的线程可以调用:
- int pthread_join(pthread_t tid, void **rval_ptr);
- int pthread_detach(pthread_t tid);
如果在创建线程时就知道不需要了解线程的终止状态,那么可以通过修改pthread_attr_t结构中的detachstate属性,让线程以分离状态启动,调用函数如下:
- int pthread_attr_detach(pthread_attr_t *attr, int detachstate);
这两种状态的区别是:
- 正常状态:可以由其他线程终止,回收资源。(可以看成有人等,有人陪)
- 分离状态:不能被其他线程终止,存储资源在它终止时由系统自动回收释放。(没人等,没人陪,自生自灭,死后回归大自然)
Otc 4, 2012 23:45 @dorm
原文:http://blog.csdn.net/anonymalias/article/details/8040156