linux线程的常用属性,linux下线程属性常用操作有哪些?

在linux中,可以使用pthread_attr_t结构修改线程默认属性,并把这些属性与创建的线程联系起来。首先调用pthread_attr_init初始化pthread_attr_t结构,使pthread_attr_t结构所包含的内容就是操作系统实现支持的线程所有属性的默认值。

然后,可以调用其他函数对想修改的个别属性进行修改。  1。线程属性的初始化(若对属性操作,必先初始化),去初始化。  #include

int pthread_attr_destroy(pthread_attr_t *attr);  int pthread_attr_init(pthread_attr_t *attr);  返回值:若成功返回0,否则返回错误编号。

2。获取分离状态/设置分离属性  #include

int pthread_attr_getdetachstate(const pthread_attr_t *attr,int *detachstate);  int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);  返回值:若成功返回0,否则返回错误编号。

设置PTHREAD_CREATE_DETACHED,以分离状态启动线程;或设置为PTHREAD_CREATE_JOINABLE,默认正常启动线程,应用程序可以获取线程的终止状态。  3。获取/设置调度策略  #include

int pthread_attr_getschedpolicy(const pthread_attr_t *restrict attr,  int *restrict policy);  int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);  返回值:若成功返回0,否则返回错误编号。

The supported values of policy shall include SCHED_FIFO, SCHED_RR, and SCHED_OTHER, which are defined in the header。

POSIX 标准指定了三种调度策略:先入先出策略 (SCHED_FIFO)、循环策略 (SCHED_RR) 和自定义策略 (SCHED_OTHER)。SCHED_FIFO 是基于队列的调度程序,对于每个优先级都会使用不同的队列。SCHED_RR 与 FIFO 相似,不同的是前者的每个线程都有一个执行时间配额。

SCHED_FIFO 和 SCHED_RR 是对 POSIX Realtime 的扩展。SCHED_OTHER 是缺省的调度策略。  SCHED_FIFO  如果调用进程具有有效的用户 ID 0,则争用范围为系统 (PTHREAD_SCOPE_SYSTEM) 的先入先出线程属于实时 (RT) 调度类。

如果这些线程未被优先级更高的线程抢占,则会继续处理该线程,直到该线程放弃或阻塞为止。对于具有进程争用范围 (PTHREAD_SCOPE_PROCESS)) 的线程或其调用进程没有有效用户 ID 0 的线程,请使用 SCHED_FIFO。SCHED_FIFO 基于 TS 调度类。

SCHED_RR  如果调用进程具有有效的用户 ID 0,则争用范围为系统 (PTHREAD_SCOPE_SYSTEM)) 的循环线程属于实时 (RT) 调度类。如果这些线程未被优先级更高的线程抢占,并且这些线程没有放弃或阻塞,则在系统确定的时间段内将一直执行这些线程。

对于具有进程争用范围 (PTHREAD_SCOPE_PROCESS) 的线程,请使用 SCHED_RR(基于 TS 调度类)。此外,这些线程的调用进程没有有效的用户 ID 0。  SCHED_FIFO 和 SCHED_RR 在 POSIX 标准中是可选的,而且仅用于实时线程。

4。获取/设置 。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值