加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux – pthread_create():什么是默认优先级和shceduling策略

发布时间:2021-01-02 04:05:03 所属栏目:Linux 来源:网络整理
导读:惠普手册页( link)说 “By default,the new thread’s scheduling policy and priority are inherited from the creating thread—that is,by default,the pthread_create(3) routine ignores the scheduling policy and priority set in the specified th

惠普手册页( link)说

“By default,the new thread’s scheduling policy and priority are
inherited from the creating thread—that is,by default,the
pthread_create(3) routine ignores the scheduling policy and priority
set in the specified thread attributes object. Thus,to create a
thread that is subject to the scheduling policy and priority set in
the specified thread attributes object,before calling
pthread_create(3) your program must use the
pthread_attr_setinheritsched(3) routine to set the inherit thread
attributes object’s scheduling attribute to PTHREAD_EXPLICIT_SCHED.”

这适用于Linux posix线程(NPTL pthread)吗?

如果没有,影响使用pthread_create()创建的线程的优先级和调度策略的因素是什么?

解决方法

从 here开始:

The following values may be specified in inheritsched:

PTHREAD_INHERIT_SCHED
Threads that are created using attr inherit scheduling attributes from the creating thread; the scheduling attributes in attr are ignored.

PTHREAD_EXPLICIT_SCHED
Threads that are created using attr take their scheduling attributes from the values specified by the attributes object.

The default setting of the inherit scheduler attribute in a newly initialized thread attributes object is PTHREAD_INHERIT_SCHED.

因此,似乎与问题中描述的行为相同.

我实际上已经认为这个默认值可以由标准定义(虽然我没有那么多经验,但我承认),但是看看Thread Scheduling Attributes部分的最后一行:

(…) The default values of other scheduling attributes are implementation-defined.

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!