如何在Mac操作系统上设置线程优先级pthreads

How to set thread priority pthreads on Mac OS

本文关键字:设置 线程 优先级 pthreads 操作系统 Mac      更新时间:2023-10-16

我发现:

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操作系统,我什么也没找到。我不能使用CocoaNSThreads类,我需要使用POSIX线程。

你知道如何在Mac操作系统上设置线程优先级pthreads吗?

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

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

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

虽然我当然同意上面关于避免修改线程优先级或调度来解决问题的评论,但您可能想从阅读pthread_getscheduparam的手册页开始,该手册页讨论了调度,并显示了OS X下最小/最大优先级设置的一些值。然后,再次思考您的问题,并且不要使用线程优先级来解决它。