侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

pthread_attr_setinheritsched函数用法详解

noerror
2022-10-04 / 0 评论 / 0 点赞 / 180 阅读 / 487 字 / 正在检测是否收录...

pthread_attr_setinheritsched函数用法详解

pthread_attr_setinheritsched函数简介

  • 头文件包含
#include <pthread.h>
  • 函数定义
int pthread_attr_setinheritsched(pthread_attr_t * attr ,
                                 int  inheritsched );
int pthread_attr_getinheritsched(const pthread_attr_t * attr ,
                                 int * inheritsched );
  • 编译链接选项
-pthread

pthread_attr_setinheritsched函数常见使用错误

  • 链接错误
    undefined reference to `pthread_attr_setinheritsched'
    解决办法:添加链接选项
-pthread
  • 编译错误
    warning: implicit declaration of function ‘pthread_attr_setinheritsched’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <pthread.h>

pthread_attr_setinheritsched函数详细描述

pthread_attr_setinheritsched ()函数将attr引用的thread attributes对象的inherite-scheduler属性设置为inheritsched 中指定的值。inherit-scheduler属性确定使用thread attributes对象attr创建的线程是从调用线程继承调度属性,还是从attr 继承调度属性
以下调度属性受继承调度器属性的影响:调度策略( pthread_attr_setschedpolicy (3))调度优先级( pthread_attr_setschedparam (3))和争用范围( pthread_attr_setscope (3))
可以在inheritsched :中指定以下值

  • 使用attr创建的 PTHREAD_INHERIT_SCHED 线程从创建线程继承调度属性;忽略attr中的调度属性。
  • 使用attr创建的 PTHREAD_EXPLICIT_SCHED 线程从attributes对象指定的值中获取它们的调度属性。

新初始化的thread attributes对象中的inherite-scheduler属性的默认设置是PTHREAD_INHERIT_SCHED
pthread_attr_getinheritsched ()返回inheritsched 指向的缓冲区中的线程属性对象attr的inherite-scheduler属性

pthread_attr_setinheritsched函数返回值

如果成功,这些函数返回0;错误时,它们返回一个非零错误号。

pthread_attr_setinheritsched函数错误码

pthread_attr_setinheritsched ()可能会失败,出现以下错误:

  • EINVAL inheritsched 中的值无效

POSIX.1还为pthread_attr_setinheritsched ()记录了一个可选的 ENOTSUP 错误(“试图将属性设置为不受支持的值”)

pthread_attr_setinheritsched函数使用举例

参见pthread_setschedparam (3)

0

评论区