Als «locking» getaggte Fragen

Durch das Sperren können verschiedene Arten von Ressourcen jeweils nur von einem Prozess verwendet werden.

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, …


8
Wie funktioniert das Schloss genau?
Ich sehe, dass wir für die Verwendung von Objekten, die nicht threadsicher sind, den Code mit einer Sperre wie folgt umschließen: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } Was passiert also, wenn mehrere Threads auf denselben Code zugreifen (nehmen wir an, …

16
Warum ist lock (this) {…} schlecht?
Die MSDN-Dokumentation besagt dies public class SomeObject { public void SomeOperation() { lock(this) { //Access instance variables } } } ist "ein Problem, wenn auf die Instanz öffentlich zugegriffen werden kann". Ich frage mich warum? Liegt es daran, dass das Schloss länger als nötig gehalten wird? Oder gibt es einen …




5
Auswirkung des NOLOCK-Hinweises in SELECT-Anweisungen
Ich denke die eigentliche Frage ist: Wenn mir Dirty Reads egal sind, wirkt sich das Hinzufügen des with- Hinweises (NOLOCK) zu einer SELECT-Anweisung auf die Leistung von: die aktuelle SELECT-Anweisung andere Transaktionen gegen die angegebene Tabelle Beispiel: Select * from aTable with (NOLOCK)
199 sql  sql-server  locking 




17
Was ist ein Deadlock?
Eines der häufigsten Probleme beim Schreiben von Multithread-Anwendungen sind Deadlocks. Meine Fragen an die Community sind: Was ist ein Deadlock? Wie erkennt man sie? Behandeln Sie sie? Und schließlich, wie verhindern Sie, dass sie auftreten?

5
Gleichzeitiges HashSet <T> in .NET Framework?
Ich habe die folgende Klasse. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); } Ich muss das Feld "Daten" aus verschiedenen Threads ändern, daher möchte ich einige Meinungen zu meiner aktuellen thread-sicheren Implementierung haben. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); public void Add(string Val){ lock(Data) Data.Add(Val); } public …



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.