http://cpp.ezbty.org/import_doc/linux_manpage/pthread_attr_getdetachstate.3.html
PTHREAD_ATTR_SETDETACHSTATE
名字
pthread_attr_setdetachstate, pthread_attr_getdetachstate - 设置/获取线程属性对象的分离状态属性
概要
#include <pthread.h>
int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
int pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);
编译并与 -pthread 一起链接。
描述
pthread_attr_setdetachstate() 函数设置 attr 引用的线程属性对象里的分离状态属性为 detachstate 指定的值。分离属性决定使用 attr 线程属性对象创建的线程是可聚合的还是独立的。
detachstate 可指定为下面值:
- PTHREAD_CREATE_DETACHED
- 使用 attr 创建的线程将是独立的。
- PTHREAD_CREATE_JOINABLE
- 使用 attr 创建的线程将是可聚合的。
分离状态属性初始默认值就是 PTHREAD_CREATE_JOINABLE。
pthread_attr_getdetachstate() 通过 detachstate 指向的缓存区返回 attr 引用的线程属性对象里的分离状态属性。
返回值
成功时,这些函数返回0;如果错误,它们返回非0值。
错误
pthread_attr_setdetachstate() 可能失败下面错误:
- EINVAL
- detachstate 中指定了一个无效值。
遵循于
POSIX.1-2001.
注意
参考 pthread_create(3) 来了解更多关于分离的和可聚合的线程细节。
一个使用可聚合状态创建的线程可以使用 pthread_join(3) 来聚合或使用 pthread_detach(3) 来分离;参数 pthread_create(3)。
在后来的 pthread_detach(3) 或 pthread_join(3) 调用中使用一个用分离状态创建的线程的 线程ID 使用参数将会导致错误。
示例
参考 pthread_attr_init(3)。
参看
pthread_attr_init(3), pthread_create(3), pthread_detach(3),
pthread_join(3), pthreads(7)