线程属性操作

设置线程属性

 typedef union
		 {
		     char _size[_SIZEOF_PTHREAD_ATTR_T];
		     long int_align;
		 }pthread_attr_t
		 猜测:不让手动修改线程的各大项属性,而使用pthread_attr
		 int pthread_attr_init(pthread_attr_t *attr);
         功能:初始化线程属性
         int pthread_attr_destroy(pthread_attr_t *attr);
		 功能:销毁线程属性
		 int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
         功能:设置线程属性中分离标志
         		 PTHREAD_CREATE_DETACHED	分离
         		PTHREAD_CREATE_JOINABLE		不分离
         int pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);
		 功能:获取线程属性中分离标志
		 int pthread_attr_setscope(pthread_attr_t *attr, int scope);
         功能:设置线程属性中线程的竞争范围
         			PTHREAD_SCOPE_SYSTEM
         			PTHREAD_SCOPE_PROCESS
         int pthread_attr_getscope(pthread_attr_t *attr, int *scope);
		 功能:获取线程属性中线程的竞争范围
		 int pthread_attr_setinheritsched(pthread_attr_t *attr, int inheritsched);
		 功能:设置线程属性中线程的调度策略的来源			
		 			PTHREAD_INHERIT_SCHED 		继承创建者
				 	PTHREAD_EXPLICIT_SCHED		单独设置
         int pthread_attr_getinheritsched(pthread_attr_t *attr, int *inheritsched);
		 功能:获取线程属性中线程的调度策略的来源
		 int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);
		 功能:设置线程属性中线程的调度策略
		 SCHED_FIFO 		先进先出策略
		 SCHED_RR			轮转策略
       	 SCHED_OTHER		缺省
         int pthread_attr_getschedpolicy(pthread_attr_t *attr, int *policy);
         功能:获取线程属性中线程的调度策略
         int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param);
         功能:设置线程属性中线程的调度参数(优先级别)
         param 最高级别0
         int pthread_attr_getschedparam(pthread_attr_t *attr, struct sched_param *param);
		 int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
		 功能:设置线程属性中栈尾的警戒区大小,默认一页
         int pthread_attr_getguardsize(pthread_attr_t *attr, size_t *guardsize);
		 功能:获取线程属性中栈尾的警戒区大小
		 int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr);
		 功能:设置线程属性中线程的栈底地址
         int pthread_attr_getstackaddr(pthread_attr_t *attr, void **stackaddr);
		 功能:获取线程属性中线程的栈底地址
		 int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
		 功能:设置线程属性中线程的栈空间字节数
         int pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize);
		 功能:获取线程属性中线程的栈空间字节数
		 
		 使用方法:
		 		1.定义线程属性结构体
		 		pthread_attr_t attr;
		 		2.初始化线程属性结构体
		 		pthread_attr_init(&attr);
		 		3.使用pthread_attr_set系列函数对结构体变量进行设置
		 		4.在创建pthread_create函数的第二个参数时使用线程属性结构体变量创建线程
		 
		 int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr);
		 功能:获取指定线程的属性
		 		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值