线程的分离状态
2017-03-08 13:27
267 查看
线程的分离状态是线程的一种属性,线程的属性结构为:
typedef struct
{
int detachstate; //分离状态
int schedpolicy; //调度策略
structsched_param schedparam; //调度参数
int inheritsched; //线程继承性
int scope; //线程作用域
size_t guardsize; //线程栈末尾的警戒缓冲区大小
int stackaddr_set;
void* stackaddr; //线程栈位置
size_t stacksize; //线程栈大小
} pthread_attr_t;
线程的分离状态是指线程的生命结束后资源的回收是否受其他线程或者程序主线程的控制,默认的线程分离状态为结合状态(join-able),需要由其他线程调用pthread_join(pthread_t pth, void** rval)等待线程pth终止,并回收线程占用的系统资源,但是等待线程会被阻塞,直到监控的线程终止。如果没有线程调用pthread_join函数,那么创建的线程资源在程序结束前不会被系统自动回收。对于detach状态的线程,线程终止后系统会自动回收线程占用的资源。
可以通过pthread_getdetachstate函数获取线程的分离状态,也可以通过pthread_setdetachstate函数设置线程的分离状态。
typedef struct
{
int detachstate; //分离状态
int schedpolicy; //调度策略
structsched_param schedparam; //调度参数
int inheritsched; //线程继承性
int scope; //线程作用域
size_t guardsize; //线程栈末尾的警戒缓冲区大小
int stackaddr_set;
void* stackaddr; //线程栈位置
size_t stacksize; //线程栈大小
} pthread_attr_t;
线程的分离状态是指线程的生命结束后资源的回收是否受其他线程或者程序主线程的控制,默认的线程分离状态为结合状态(join-able),需要由其他线程调用pthread_join(pthread_t pth, void** rval)等待线程pth终止,并回收线程占用的系统资源,但是等待线程会被阻塞,直到监控的线程终止。如果没有线程调用pthread_join函数,那么创建的线程资源在程序结束前不会被系统自动回收。对于detach状态的线程,线程终止后系统会自动回收线程占用的资源。
可以通过pthread_getdetachstate函数获取线程的分离状态,也可以通过pthread_setdetachstate函数设置线程的分离状态。
相关文章推荐
- 线程的分离状态
- 计算机基础---线程分离状态
- 线程分离状态的理解
- 线程的分离状态
- 线程分离状态与僵尸进程
- 线程的分离状态 pthread_attr_setdetachstate 函数使用
- 线程的分离状态(detached state)
- 线程状态:分离状态(detached)与可结合状态(joinable)
- 线程的分离状态
- 线程的分离状态 pthread_attr_setdetachstate 函数使用
- 线程的分离状态
- 线程的分离状态
- 线程的分离状态
- 线程的分离状态
- linux下线程的分离状态和结合状态
- 线程的分离状态
- 线程分离状态与僵尸进程
- Linux C 多线程【2】--线程的分离状态
- 线程的分离与非分离状态
- 创建线程可分离状态的属性