System.NeverSleepOnMMThreadContention

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

NeverSleepOnMMThreadContention: Boolean;

C++

extern DELPHI_PACKAGE bool NeverSleepOnMMThreadContention;

プロパティ

種類 可視性 ソース ユニット
variable public
System.pas
System.hpp
System System

説明

スレッド競合時のメモリ マネージャの動作を指定します。

メモリ マネージャは共有リソースなので、アプリケーション内のたくさんのスレッドが 1 つのメモリ操作を同時に実行しようとすると、1 つ以上のスレッドが、他のスレッドが操作を完了するまでの間、操作を保留にして待たなければなりません。この状況をスレッド競合と呼びます。メモリ マネージャ内でスレッド競合が発生すると、デフォルトの動作では、まず、そのスレッドのタイム スライス内の残り時間を放棄します。スレッドが次のタイム スライスに入ったときに、リソースがまだ利用できない場合、メモリ マネージャは、再試行を行う前に、OS の Sleep プロシージャを呼び出します。

この動作は、単一 CPU または デュアル コア CPU を持つマシンに対しては効果的に機能します。また、実行スレッド数と CPU コア数の比率が比較的高い(2:1 より高い)場合にも効果的です。それ以外の場合は、リソースが利用可能になるまで待ち状態ループに入る方が、より高いパフォーマンスが得られる可能性があります。NeverSleepOnMMThreadContentionTrue の場合、メモリ マネージャはスレッド競合が発生したときに、この代替手段を使用します。NeverSleepOnMMThreadContention のデフォルト値は False です。

関連項目