System.NeverSleepOnMMThreadContention

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

NeverSleepOnMMThreadContention: Boolean;

C++

extern DELPHI_PACKAGE bool NeverSleepOnMMThreadContention;

Propriétés

Type Visibilité  Source Unité  Parent
variable public
System.pas
System.hpp
System System

Description

Dicte le comportement du gestionnaire de mémoire durant un conflit de thread.

Le gestionnaire de mémoire est une ressource partagée. Quand plusieurs threads de l'application tentent d'exécuter une opération mémoire en même temps, un ou plusieurs threads pourront attendre l'achèvement d'une opération en suspens dans un autre thread avant de poursuivre leur exécution. Cette situation est appelée un conflit de thread. Quand un conflit de thread survient dans le gestionnaire de mémoire, le comportement par défaut consiste à renoncer au temps restant dans la tranche de temps du thread. Si la ressource n'est toujours pas disponible quand le thread entre sa tranche de temps suivante, le gestionnaire de mémoire appelle la procédure Sleep du système d'exploitation avant d'effectuer une nouvelle tentative.

Ce comportement fonctionne correctement sur les machines à CPUs à cores uniques ou doubles, et également lorsque le rapport du nombre de threads en cours d'exécution sur le nombre de cores CPU est relativement élevé (supérieur à 2:1). Dans d'autres situations, vous pouvez obtenir de meilleures performances en entrant une boucle d'attente jusqu'à ce que la ressource devienne disponible. Si NeverSleepOnMMThreadContention est définie sur True, le gestionnaire de mémoire utilisera cette stratégie alternative quand un conflit de thread survient. La valeur par défaut de NeverSleepOnMMThreadContention est False.

Voir aussi