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, …
Ich verstehe die Unterschiede zwischen optimistischem und pessimistischem Locking. Könnte mir jetzt jemand erklären, wann ich eines von beiden generell verwenden würde? Und ändert sich die Antwort auf diese Frage abhängig davon, ob ich eine gespeicherte Prozedur zum Ausführen der Abfrage verwende oder nicht? Aber nur um zu überprüfen, bedeutet …
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, …
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 …
Sehen verschiedene Verriegelungs Zusammenhang Frage und (fast) immer die ‚Schleife wegen falschen Wakeups‘ zu finden Begriffe 1 I Wunder, hat jemand erlebt eine solche Art eines Wake - up (eine anständige Hardware / Software - Umgebung zum Beispiel angenommen wird )? Ich weiß, dass der Begriff "falsch" keinen offensichtlichen Grund …
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)
Wenn ich zwei synchronisierte Methoden in derselben Klasse habe, aber jeweils auf unterschiedliche Variablen zugreift, können 2 Threads gleichzeitig auf diese beiden Methoden zugreifen? Tritt die Sperre für das Objekt auf oder wird sie so spezifisch wie die Variablen innerhalb der synchronisierten Methode? Beispiel: class X { private int a; …
Mit POSIX können Mutexe rekursiv sein. Das bedeutet, dass derselbe Thread denselben Mutex zweimal sperren kann und nicht blockiert. Natürlich muss es auch zweimal entsperrt werden, sonst kann kein anderer Thread den Mutex erhalten. Nicht alle Systeme, die Pthreads unterstützen, unterstützen auch rekursive Mutexe. Wenn sie jedoch POSIX-konform sein möchten, …
Kann jemand den Unterschied erklären zwischen: lock (ein Objekt) {} Mutex verwenden Semaphor verwenden Monitor verwenden Verwenden anderer .Net-Synchronisationsklassen Ich kann es einfach nicht herausfinden. Es scheint mir, dass die ersten beiden gleich sind?
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?
Ich habe die folgende Klasse. class Test{ public HashSet<string> Data = new HashSet<string>(); } 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<string> Data = new HashSet<string>(); public void Add(string Val){ lock(Data) Data.Add(Val); } public …
In einer einfachen Sprache (C, C ++ oder was auch immer): Ich habe die Wahl zwischen einer Reihe von Mutexen (wie das, was mir pthread gibt oder was die native Systembibliothek bietet) oder einer einzelnen für ein Objekt. Wie effizient ist es, einen Mutex zu sperren? Dh wie viele Assembler-Anweisungen …
In C ++ 17 wurde eine neue Sperrklasse namens eingeführt std::scoped_lock. Aus der Dokumentation geht hervor, dass es der bereits vorhandenen std::lock_guardKlasse ähnelt . Was ist der Unterschied und wann sollte ich es verwenden?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.