在Linux(pthreads)上等效于SetThreadPriority

给出以下代码,我想知道假设pthreads甚至使用Boost.Thread API在linux中等效的代码是什么。

#include <windows.h>

int main()

{

SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_HIGHEST);

return 0;

}

回答:

相当于SetThreadPrioritylinux中的pthread_setschedprio(pthread_t thread, int

priority)

检查手册页。

编辑:这是等效的示例代码:

#include <pthread.h>

int main()

{

pthread_t thId = pthread_self();

pthread_attr_t thAttr;

int policy = 0;

int max_prio_for_policy = 0;

pthread_attr_init(&thAttr);

pthread_attr_getschedpolicy(&thAttr, &policy);

max_prio_for_policy = sched_get_priority_max(policy);

pthread_setschedprio(thId, max_prio_for_policy);

pthread_attr_destroy(&thAttr);

return 0;

}

此示例适用于默认调度策略SCHED_OTHER。

编辑:线程属性必须在使用之前初始化。

以上是 在Linux(pthreads)上等效于SetThreadPriority 的全部内容, 来源链接: utcz.com/qa/414983.html

回到顶部