thread_setsched 子例程
用途
更改了内核线程的调度策略和优先级。
库
标准 C 库 (libc.a)
语法
描述
thread_setsched 子例程更改了内核线程的调度策略和优先级。 用户线程 (pthread) 有自己的调度属性,在某些情况下允许 pthread 在多个内核线程之上执行。 因此,如果以 pthread 的名义授予策略或优先级更改,那么 pthread 争用作用域应该为 PTHREAD_SCOPE_SYSTEM。
注: 使用 thread_setsched 子例程时必须谨慎,因为不正确使用可能导致系统挂起。 有关线程优先级的限制,请参阅 sys/pri.h 。
参数
| 项 | 描述 |
|---|---|
| tid | 指定将更改其优先级和策略的线程的内核线程标识。 |
| 优先级 (priority) | 指定要用于此内核线程的优先级。 如果将策略设置为 其他模式,那么将忽略优先级参数。 优先级参数必须 0 范围在 0 到 PRI_LOW之间的值。 PRI_LOW 在 sys/pri.h中定义。 有关线程优先级的更多信息,请参阅 sys/pri.h 。 |
| 策略 | 指定要用于此内核线程的策略。 策略参数可以是下列其中一个值,在 sys/sched.h中定义:
|
返回值
在成功完成时, thread_setsched 子例程返回值零。 如果thread_setsched子程序不成功,则返回值为-1,并设置errno全局变量来指示错误。
错误代码
如果以下一个或多个条件成立,那么 thread_setsched 子例程不成功:
| 项 | 描述 |
|---|---|
| ESRCH | 内核线程标识为 标识 无效。 |
| EINVAL | 该策略或优先级无效。 |
| EPERM | 调用者没有足够的权限来更改策略或优先级。 |