【发布时间】:2009-11-09 23:17:00
【问题描述】:
我的应用程序创建了一个辅助 pthread,我需要它以比主线程更高的优先级运行。
我尝试这样设置创建线程的优先级:
struct sched_param param;
pthread_attr_t tattr;
pthread_attr_init(&tattr);
pthread_attr_getschedparam(&tattr, ¶m);
param.sched_priority = sched_get_priority_max(SCHED_RR);
pthread_attr_setschedparam(&tattr, ¶m);
pthread_create(&helper_thread, &tattr, helper_main, NULL);
但是pthread_attr_setschedparam 调用返回的是 EINVAL。
我不确定我在这里做错了什么。这甚至是正确的通用方法吗?
我并不关心它是如何完成的,我只需要新线程的优先级高于原来的线程即可。
【问题讨论】: