Als «interlocked» getaggte Fragen

9
Volatile vs. Interlocked vs. Lock
Angenommen, eine Klasse verfügt über ein public int counterFeld, auf das mehrere Threads zugreifen. Dies intwird nur erhöht oder verringert. Welcher Ansatz sollte verwendet werden, um dieses Feld zu erhöhen, und warum? lock(this.locker) this.counter++;, Interlocked.Increment(ref this.counter);, Ändern Sie den Zugriffsmodifikator von counterin public volatile. Jetzt, wo ich entdeckt habe volatile, …

2
Sollten ineinandergreifende Implementierungen, die auf CompareExchange basieren, SpinWait verwenden?
Nachfolgend finden Sie eine Implementierung einer ineinandergreifenden Methode, die auf basiert Interlocked.CompareExchange. Ist es ratsam, dass dieser Code SpinWaitvor dem Wiederholen einen Spin verwendet? public static bool AddIfLessThan(ref int location, int value, int comparison) { int currentValue; do { currentValue = location; // Read the current value if (currentValue >= …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.