3

我发现:

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 吗?

4

2 回答 2

0

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

至于优先级,请参阅以下文档pthread_setschedparam()

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

于 2021-06-14T08:59:59.220 回答
-4

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

于 2013-03-12T18:39:15.687 回答