如何在Mac OS上设置线程优先级pthreads

时间:2012-08-21 13:57:19

标签: c++ pthreads

我找到了:

pthread_setschedprio() 

此处:http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_setschedprio.3.html

但我找不到线程优先级的任何有效值。对于Windows,我发现了非常明确的可能值,例如:

THREAD_PRIORITY_BELOW_NORMAL
THREAD_PRIORITY_NORMAL
THREAD_PRIORITY_ABOVE_NORMAL

但对于Mac OS我没有找到任何东西。我不能使用Cocoa NSThreads类,我需要使用POSIX线程。

您知道如何在Mac OS上设置线程优先级pthreads吗?

2 个答案:

答案 0 :(得分:0)

AFAIK pthread_setschedprio() 在 macOS 上不存在。您只能在使用 pthread_setschedparam() 创建线程时设置线程的优先级。

关于优先级,请参阅 pthread_setschedparam() 的文档:

<块引用>

有效的线程优先级(通过 param->sched_priority 访问)必须在 sched_get_priority_min(2)sched_get_priority_max(2) 系统调用返回的范围内。

答案 1 :(得分:-3)

虽然我当然同意上面关于避免修改线程优先级或安排解决问题的评论,但您可能需要首先阅读讨论调度的pthread_getschedparam的手册页,并在下面显示最小/最大优先级设置的一些值。 OS X.然后,再次重新考虑您的问题,并且不要使用线程优先级来解决它。