Als «thread-safety» getaggte Fragen

Ein Code ist threadsicher, wenn er Datenstrukturen nur so manipuliert, dass er eine konsistente Ausführung dieses Codes durch mehrere Threads ermöglicht. Ein Code kann threadsicher, bedingt sicher (gegenseitiger Ausschluss erforderlich) oder unsicher (kann nur von einem Thread sicher verwendet werden) sein.



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

3
Anwendungsfälle für RxJava-Scheduler
In RxJava stehen 5 verschiedene Scheduler zur Auswahl: instant () : Erstellt einen Scheduler und gibt ihn zurück, der die Arbeit am aktuellen Thread sofort ausführt. trampoline () : Erstellt einen Scheduler und gibt ihn zurück, der die Arbeit an dem aktuellen Thread in die Warteschlange stellt, der nach Abschluss …

7
Was genau ist eine Wiedereintrittsfunktion?
Die meisten von den Zeiten , ist die Definition der erneuten Eintritt von zitierte Wikipedia : Ein Computerprogramm oder eine Routine wird als wiedereintrittsfähig bezeichnet, wenn es sicher wieder aufgerufen werden kann, bevor sein vorheriger Aufruf abgeschlossen wurde (dh es kann sicher gleichzeitig ausgeführt werden). Wiedereintritt, ein Computerprogramm oder eine …


9
Automatisieren des InvokeRequired-Codemusters
Mir ist schmerzlich bewusst geworden, wie oft man das folgende Codemuster in ereignisgesteuerten GUI-Code schreiben muss, wo private void DoGUISwitch() { // cruisin for a bruisin' through exception city object1.Visible = true; object2.Visible = false; } wird: private void DoGUISwitch() { if (object1.InvokeRequired) { object1.Invoke(new MethodInvoker(() => { DoGUISwitch(); })); …

7
Queue.Queue vs. collection.deque
Ich brauche eine Warteschlange, in die mehrere Threads Inhalte einfügen können und aus der mehrere Threads lesen können. Python hat mindestens zwei Warteschlangenklassen, Queue.Queue und collection.deque, wobei die erstere anscheinend die letztere intern verwendet. Beide behaupten, in der Dokumentation threadsicher zu sein. In den Warteschlangendokumenten heißt es jedoch auch: collection.deque …

4
Was macht eine Methode threadsicher? Wie lauten die Regeln?
Gibt es allgemeine Regeln / Richtlinien dafür, was eine Methode threadsicher macht? Ich verstehe, dass es wahrscheinlich eine Million einmaliger Situationen gibt, aber was ist im Allgemeinen? Ist es so einfach? Wenn eine Methode nur auf lokale Variablen zugreift, ist sie threadsicher. Ist es das? Gilt das auch für statische …
156 c#  thread-safety 

5
Ist das Iterieren von ConcurrentHashMap-Werten threadsicher?
In Javadoc für ConcurrentHashMap ist Folgendes: Abrufvorgänge (einschließlich get) werden im Allgemeinen nicht blockiert und können sich daher mit Aktualisierungsvorgängen (einschließlich put und remove) überschneiden. Abrufe spiegeln die Ergebnisse der zuletzt abgeschlossenen Aktualisierungsvorgänge wider, die bei ihrem Beginn ausgeführt wurden. Bei aggregierten Vorgängen wie putAll und clear können gleichzeitige Abfragen …

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 …


5
Sind nicht synchronisierte statische Methoden threadsicher, wenn sie statische Klassenvariablen nicht ändern?
Ich frage mich , ob Sie eine statische Methode, die ist nicht synchronisiert, aber nicht nicht ändern , dass statische Variablen ist es Thread-sicher? Was ist, wenn die Methode lokale Variablen darin erstellt? Ist der folgende Code beispielsweise threadsicher? public static String[] makeStringArray( String a, String b ){ return new …

8
Ist der Thread Thread! = Sicher?
Ich weiß, dass zusammengesetzte Operationen, wie sie i++nicht threadsicher sind, mehrere Operationen beinhalten. Aber ist das Überprüfen der Referenz mit sich selbst eine thread-sichere Operation? a != a //is this thread-safe Ich habe versucht, dies zu programmieren und mehrere Threads zu verwenden, aber es ist nicht fehlgeschlagen. Ich konnte wohl …

4
Ist es in Ordnung, die Gson-Instanz als statisches Feld in einer Modell-Bean zu verwenden (Wiederverwendung)?
Hier ist das Modell, das ich implementiert habe: public class LoginSession { private static final Gson gson = new Gson(); private String id; private String name; private long timestamp; public LoginSession(String id, String name) { this.id = id; this.name = name; this.timestamp = System.currentTimeMillis(); } public String toJson() { return …

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.