Les moniteurs et les verrous fournissent des mécanismes de synchronisation de l'accès aux objets. lock est un raccourci pour Monitor.Enter et essayez enfin.
Lock est un raccourci et une option pour une utilisation de base. Si nous avons besoin de plus de contrôle, utilisez TryEnter(), Wait(), Pulse() et & pour des solutions multithread avancées PulseAll(), alors la classe Montior est votre choix.
Exemple de verrouillage -
class Program{ static object _lock = new object(); static int Total; public static void Main(){ AddOneHundredLock(); Console.ReadLine(); } public static void AddOneHundredLock(){ for (int i = 1; i <= 100; i++){ lock (_lock){ Total++; } } }
Exemple de moniteur−
class Program{ static object _lock = new object(); static int Total; public static void Main(){ AddOneHundredMonitor(); Console.ReadLine(); } public static void AddOneHundredMonitor(){ for (int i = 1; i <= 100; i++){ Monitor.Enter(_lock); try{ Total++; } finally{ Monitor.Exit(_lock); } } } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!