C多线程编程---线程的属性

本文详细介绍了C多线程编程中的线程属性,包括线程的绑定状态(非绑定与绑定,涉及轻进程概念)、线程的分离状态(非分离与分离状态及其影响)、线程的优先级设定、线程栈的地址与大小以及线程调度策略等,旨在帮助开发者更好地理解和控制线程行为。
摘要由CSDN通过智能技术生成

1、前言:

1、一般使用pthread_create函数创建一个线程,使用默认参数,即将该函数的第二个参数设为NULL,对大多数程序来说,使用默认属性就够了,但我们还是有必要来了解一下线程的有关属性。
2、属性值不能直接设置,须使用相关函数进行操作,初始化的函数为pthread_attr_init,这个函数必须在pthread_create函数之前调用。之后须用pthread_attr_destroy函数来释放资源。属性对象主要包括
是否绑定
是否分离
堆栈地址
堆栈大小
优先级
默认的属性为非绑定、非分离、缺省1M的堆栈、与父进程同样级别的优先级。

2、线程的绑定状态

轻进程(LWP:Light Weight Process)

关于线程的绑定,牵涉到另外一个概念:轻进程(LWP:Light Weight Process):轻进程可以理解为内核线程,它位于用户层和系统层之间。系统对线程资源的分配、对线程的控制是通过轻进程来实现的,一个轻进程可以控制一个或多个线程。

非绑定状态

默认状况下,启动多少轻进程、哪些轻进程来控制哪些线程是由系统来控制的,这种状况即称为非绑定的。
绑定状态

绑定状态

顾名思义,即某个线程固定的"绑"在一个轻进程之上。被绑定的线程具有较高的响应速度,这是因为CPU时间片的调度是面向轻进程的,绑定的线程可以保证在需要的时候它总有一个轻进程可用。通过设置被绑定的轻进程的优先级和调度级可以使得绑定的线程满足诸如实时反应之类的要求。

应用

设置线程绑定状态的函数为pthread_attr_setscope,它有两个参数,第一个是指向属性结构的指针,第二个是绑定类型,它有两个取值:PTHREAD_SCOPE_SYSTEM(绑定的)和PTHREAD_SCOPE_PROCESS(非绑定的)。下面的代码即创建了一个绑定的线程。

#includ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值