【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )
生活随笔
收集整理的這篇文章主要介紹了
【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、設置、獲取線程優先級的核心函數
- 二、修改線程調度策略函數
一、設置、獲取線程優先級的核心函數
設置、獲取 線程 優先級的 核心 函數 :
① 設置 " 創建線程 " 的優先級 :
int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param)② 獲取 " 創建線程 " 的優先級 :
int pthread_attr_getschedparam(pthread_attr_t *attr, const struct sched_param *param)設置 struct sched_param *param 結構體的 sched_priority 字段 , 即可設置 " 優先級 " 屬性 ;
上述 222 個函數 , 如果執行成功 , 返回 000 ;
如果執行失敗 , 則返回錯誤代碼 :
- EINVAL : 屬性設置無效 ;
- ENOTSUP : 設置的屬性值不合法 ;
二、修改線程調度策略函數
創建 pthread 線程時 , 默認的線程時 SCHED_OTHHER 調度策略 , 可以通過下面的函數 , 修改調度策略 ;
修改線程 " 調度策略 " 函數 :
int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);如果函數執行成功 , 返回 000 ;
如果函數執行失敗 , 返回錯誤代碼 :
- EINVALEINVAL : pthread_attr_t *attr 線程未初始化 , 或者 , int policy 不是有效調度策略 ;
- EFAULTEFAULT : pthread_attr_t *attr 指針無效 ;
- ENOTSUPENOTSUP : 嘗試將調度策略修改為 SCHED_FIFO 或 SCHED_RR 實時調度策略 ;
總結
以上是生活随笔為你收集整理的【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 内核】进程优先级与调度策略
- 下一篇: 【错误记录】Ubuntu 中 ROOT