是否可以将单个线程的优先级设置为实时优先级,尽管该进程不在实时优先级下运行?
答案 0 :(得分:4)
窗口scheduling priorities清楚地描述了这种情况。
没有称为“实时优先级”的线程优先级。最重要的一个
线程可以获得THREAD_PRIORITY_TIME_CRITICAL
。但这并不完全
描述线程的基本优先级。这也取决于进程优先级。
对于几乎所有流程优先级类别,THREAD_PRIORITY_TIME_CRITICAL
的设置将为
导致线程以15的基本优先级运行。REALTIME_PRIORITY_CLASS
是一个例外。
在进程中设置为THREAD_PRIORITY_TIME_CRITICAL
的线程设置为REALTIME_PRIORITY_CLASS
,基本优先级为31,这是获得的最高优先级。
NORMAL_PRIORITY_CLASS
和THREAD_PRIORITY_TIME_CRITICAL
的组合使得线程已经远远高于大多数其他线程(也是OS),但我不会实时调用它。
对于我的观点(并且如“调度优先级列表”中所述),实时仅从大于15的基本优先级开始。因此,当其进程具有{{1}时,线程只能获得实时的priorties。 }。
这意味着您的问题的正确答案是否定的。当一个线程的进程没有实时优先级时,它就无法获得真正的优先级。
答案 1 :(得分:1)