parallel_for_each を処理するスレッドのスレッド優先度を下げたいと考えています。これは、負荷が高い状況では、システム内の他のスレッドに比べてプロセッサ時間を消費しすぎるためです。
質問:
1) parallel_for_each のサービス スレッドは、呼び出しスレッドのスレッド優先度を継承しますか? この場合、おそらく、parallel_for_each の前後で SetThreadPriority を呼び出すことができ、すべて問題ないはずです。
2) または、parallel_for_each 内で SetThreadPriority を呼び出すことをお勧めしますか? これにより、同じスレッドに対して API が複数回呼び出されることは明らかです。これを行うには大きなオーバーヘッドがありますか?
2.b) これを行うと仮定すると、次に parallel_for_each が呼び出されたときにスレッドの優先度に影響しますか?つまり、後で各スレッドの優先度を何らかの方法でリセットする必要がありますか?
3) 一般的なスレッドの優先順位について疑問に思っています。コメントしたい人はいますか:単一のプロセッサをめぐって競合する2つのスレッドがあり、1つは「通常以下」に設定され、もう1つは「通常」の優先度であると仮定します。一方のスレッドは、他方のスレッドと比較して、およそ何パーセント多くのプロセッサ時間を取得できますか?