2

プロセスはリアルタイム優先度で実行されませんが、単一スレッドの優先度をリアルタイム優先度に設定することは可能ですか?

4

2 に答える 2

4

ウィンドウのスケジューリングの優先順位は、状況を明確に説明しています。「リアルタイム優先度」と呼ばれるスレッド優先度はありません。スレッドが取得できる最高の優先度は ですTHREAD_PRIORITY_TIME_CRITICAL。しかし、これはスレッドの基本優先度を完全に説明しているわけではありません。これは、プロセスの優先度クラスによっても決定されます。ほとんどすべてのプロセス優先度クラスでは、 を設定THREAD_PRIORITY_TIME_CRITICALすると、スレッドは基本優先度 15 で実行されます。1 つの例外はREALTIME_PRIORITY_CLASS. THREAD_PRIORITY_TIME_CRITICALに設定されたプロセス内に設定されたスレッドREALTIME_PRIORITY_CLASSは、取得する最高の優先度である基本優先度 31 で実行されます。

との組み合わせによりNORMAL_PRIORITY_CLASSTHREAD_PRIORITY_TIME_CRITICALスレッドはすでに他のほとんどのスレッド (OS も) よりもはるかに優れていますが、これをリアルタイムとは呼びません。

私の観点では (「スケジューリング優先順位リスト」で説明されているように) リアルタイムは 15 を超える基本優先順位でのみ開始されます。したがって、スレッドは、そのプロセスがREALTIME_PRIORITY_CLASS.

つまり、あなたの質問に対する正解は NO です。プロセスにリアルタイム優先度がない場合、スレッドは実際の優先度を取得できません。

于 2012-07-22T17:05:38.417 に答える
1

を使用することは可能ですSetThreadPriorityが、推奨されません

于 2012-05-23T10:11:45.390 に答える