Linux 线程属性的使用
来源:互联网 发布:java核心技术卷一 pdf 编辑:程序博客网 时间:2024/06/05 20:40
线程属性
.
名称::
pthread_attr_init/pthread_attr_destroy
功能:
对线程属性初始化/去除初始化
头文件:
#include <pthread.h>
函数原形:
int pthread_attr_init(pthread_attr_t *attr);
int pthread_attr_destroy(pthread_attr_t *attr);
参数:
Attr
返回值:
若成功返回0,若失败返回-1。
线程的分离状态
线程的分离状态决定一个线程以什么样的方式来终止自己。在默认情况下线程是非分离状态的,这种情况下,原有的线程等待创建的线程结束。只有当pthread_join()函数返回时,创建的线程才算终止,才能释放自己占用的系统资源。
而分离线程不是这样子的,它没有被其他的线程所等待,自己运行结束了,线程也就终止了,马上释放系统资源。程序员应该根据自己的需要,选择适当的分离状态。所以如果我们在创建线程时就知道不需要了解线程的终止状态,则可以pthread_attr_t结构中的detachstate线程属性,让线程以分离状态启动。
名称::
pthread_attr_getdetachstate/pthread_attr_setdetachstate
功能:
获取/修改线程的分离状态属性
头文件:
#include <pthread.h>
函数原形:
int pthread_attr_getdetachstate(const pthread_attr_t * attr,int *detachstate);
int pthread_attr_setdetachstate(pthread_attr_t *attr,int detachstate);
参数:
Attr
Detachstate
返回值:
若成功返回0,若失败返回-1。
可以使用pthread_attr_setdetachstate函数把线程属性detachstate设置为下面的两个合法值之一:设置为PTHREAD_CREATE_DETACHED,以分离状态启动线程;或者设置为PTHREAD_CREATE_JOINABLE,正常启动线程。可以使用pthread_attr_getdetachstate函数获取当前的datachstate线程属性。
#include <pthread.h>
#include <iostream>#include <semaphore.h>
#define SIZE 1024
void* child_thread(void* arg)
{
printf("child thread\n");
}
int main(int argc, char* argv[])
{
int res;
pthread_t tid;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
res = pthread_create(&tid, &attr, child_thread, NULL);
pthread_attr_destroy(&attr);
sleep(1);
return(EXIT_SUCCESS);
}
名称::
pthread_attr_getdetachstate/pthread_attr_setdetachstate
功能:
获取/修改线程的分离状态属性
头文件:
#include <pthread.h>
函数原形:
int pthread_attr_getdetachstate(const pthread_attr_t * attr,int *detachstate);
int pthread_attr_setdetachstate(pthread_attr_t *attr,int detachstate);
参数:
Attr
Detachstate
返回值:
若成功返回0,若失败返回-1。
可以使用pthread_attr_setdetachstate函数把线程属性detachstate设置为下面的两个合法值之一:设置为PTHREAD_CREATE_DETACHED,以分离状态启动线程;或者设置为PTHREAD_CREATE_JOINABLE,正常启动线程。可以使用pthread_attr_getdetachstate函数获取当前的datachstate线程属性。
- Linux 线程属性的使用
- linux线程的属性
- linux 线程 线程属性
- Linux线程的使用
- linux线程属性的设置(转)
- Linux创建线程的属性设置
- linux线程属性、共享属性
- linux 线程编程:线程属性
- linux线程系列(7)线程的属性
- Linux线程属性总结
- Linux线程属性总结
- Linux 线程设置属性
- linux线程属性
- Linux线程属性总结
- linux线程属性
- Linux线程属性总结
- Linux线程属性总结
- Linux线程属性
- sql 中 case when 语法
- 记: 在调试boost::thread库遇到的一个小问题
- Trie树详解及其应用
- 对于Freescale MFG编程工具控制文件ucl.xml的分析
- system的调用和返回
- Linux 线程属性的使用
- java数据库连接大全
- android文件系统介绍汇总
- 游戏优化 之 四叉树
- [wtl学习]-[第一天]-[转]C++中虚函数工作原理
- HelloWorld之浅析Android程序结构
- sql之left join、right join、inner join的区别
- 素数与编程
- 在Linux下使用qmake生成makefile