在Linux(pthreads)上等效于SetThreadPriority
给出以下代码,我想知道假设pthreads甚至使用Boost.Thread API在linux中等效的代码是什么。
#include <windows.h>int main()
{
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_HIGHEST);
return 0;
}
回答:
相当于SetThreadPriority
linux中的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