C++多线程学习
2015-07-13 21:31
281 查看
linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态
一个线程默认的状态是joinable,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。只有当你调用了pthread_join之后这些资源才会被释放。
若是unjoinable状态的线程,这些资源在线程函数退出时或pthread_exit时自动会被释放。
unjoinable属性可以在pthread_create时指定,或在线程创建后在线程中pthread_detach自己, 如:pthread_detach(pthread_self()),将状态改为unjoinable状态,确保资源的释放。如果线程状态为 joinable,需要在之后适时调用pthread_join.
一个线程默认的状态是joinable,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。只有当你调用了pthread_join之后这些资源才会被释放。
若是unjoinable状态的线程,这些资源在线程函数退出时或pthread_exit时自动会被释放。
unjoinable属性可以在pthread_create时指定,或在线程创建后在线程中pthread_detach自己, 如:pthread_detach(pthread_self()),将状态改为unjoinable状态,确保资源的释放。如果线程状态为 joinable,需要在之后适时调用pthread_join.
相关文章推荐
- POJ 3468
- 循环首次适应算法、首次适应算法、最佳适应算法_C语言版
- c/c++ # 与 ##
- C语言入门学习总结(一)
- C语言时间处理
- C语言中函数的妙用
- c++builder自定义控件
- C++常用术语及其英文翻译的含义和简单用途总结(一)
- C++ 学习之函数重载、基于const的重载
- [C++] const与重载
- C++中const重载
- vs2010下C++调用lib或dll文件
- C语言基础之--------内存地址分配
- C语言基础———指针,结构体指针,函数指针
- ZOJ2714迭代更新
- C语言基础---------函数,结构体
- C语言基础-----二维数组,三维数组
- 【C++/STL】list的实现(采用空间配置器和迭代器)
- C语言基础之数组
- C语言基础---BOOL 类型,运算符,if 语句,switch语句