gpt4 book ai didi

linux - 替代 setpriority(PRIO_PROCESS, thread_id, priority)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:49 33 4
gpt4 key购买 nike

给定 - 线程的线程 ID。
要求 - 设置线程 id 的 Linux 优先级。
约束 - 不能使用 setpriority()

我试过在下面使用

pthread_setschedprio(pthread_t thread, int prio);
pthread_setschedparam(pthread_t thread, int policy, const struct sched_pa​​ram *param);

上述两个 API 都使用 pthread_t 作为参数。我无法从线程 ID 构造(类型转换)pthread_t。我知道由于类型不同,无法转换它。

还有办法做到这一点吗?

最佳答案

pthread_setschedprio 的某些方面接口(interface)可用于带有 sched_setparam 的普通线程 ID函数(在 <thread.h> 中声明)。 sched_setparam manual page表示该进程受到影响(这是 POSIX 规定的行为),但在 Linux 上,it's actually the thread of that ID .

请记住,调用 sched_setparam直接调用可能会破坏 PI 互斥锁和其他同步原语的预期行为,因为直接调用不执行由 pthread_ 执行的额外簿记。 * 函数。

关于linux - 替代 setpriority(PRIO_PROCESS, thread_id, priority),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45278330/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com