Articles of Multithreading

Ist der Zugriff auf eine Variable in C # eine atomare Operation?

Ich bin dazu gebracht worden zu glauben, dass, wenn mehrere Threads auf eine Variable zugreifen können, alle Lesevorgänge von und Schreiben in diese Variable durch einen Synchronisierungscode geschützt sein müssen, wie eine “lock” -statement, weil der processor möglicherweise zu einem anderen Thread in der Mitte wechselt ein schreiben. Ich habe jedoch System.Web.Security.Membership mit Reflector gesucht […]

Verlaufen C # Timer auf einem separaten Thread?

Verläuft ein System.Timers.Timer in einem separaten Thread als der Thread, der ihn erstellt hat? Sagen wir, ich habe eine class mit einem Timer, der alle 5 Sekunden ausgetriggers wird. Wenn der Timer ausgetriggers wird, wird in der verstrichenen Methode ein Objekt geändert. Nehmen wir an, es dauert sehr lange, um dieses Objekt zu modifizieren, zB […]

Gleichzeitige HashSet in .NET Framework?

Ich habe folgende class. class Test{ public HashSet Data = new HashSet(); } Ich muss das Feld “Daten” von verschiedenen Threads ändern, daher möchte ich einige Meinungen über meine aktuelle Thread-sichere Implementierung. class Test{ public HashSet Data = new HashSet(); public void Add(string Val){ lock(Data) Data.Add(Val); } public void Remove(string Val){ lock(Data) Data.Remove(Val); } } […]

Gibt es eine Möglichkeit, einen Thread auf unbestimmte Zeit anzuhalten?

Ich habe in meiner Freizeit an einer Web-Crawling-.NET-App gearbeitet, und eine der functionen dieser App, die ich einfügen wollte, war eine Pause-Schaltfläche, um einen bestimmten Thread anzuhalten. Ich bin relativ neu in Multi-Threading und ich war nicht in der Lage, eine Möglichkeit zu finden, einen Thread auf unbestimmte Zeit anzuhalten, der momentan unterstützt wird. Ich […]

Wie wird eine Aufgabe in C # 4.0 in den Ruhezustand versetzt (oder verzögert)?

Es gibt Task.Delay in .NET 4.5 Wie kann ich dasselbe in .NET 4.0 machen?

Ist es sicher, Swing / AWT-Widgets NICHT im Event-Dispatch-Thread zu erstellen?

Ich habe das Substance- Look-and-Feel in meine Anwendung integriert und bin in verschiedene Probleme bezüglich der internen EDT-Routinen (Event Dispatch Thread) geraten. Die Substanz weigert sich absolut, UI-classn außerhalb des EDT zu konstruieren. Ich habe viel Swing / AWT gemacht und kenne die meisten Regeln bezüglich des EDT. Ich verwende SwingWorker, SwingUtilties.invokeLater, um Komponenten zu […]

Wählen Sie zwischen dem Ausführen des ExecutorService und dem ExecutorService aus

Wie sollte ich zwischen dem Senden oder Ausführen von ExecutorService wählen, wenn der zurückgegebene Wert nicht mein Anliegen ist? Wenn ich beides teste, sehe ich keine Unterschiede zwischen den beiden außer dem zurückgegebenen Wert. ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.execute(new Task()); ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.submit(new Task());

AsyncTask-Threads sterben niemals

Ich verwende AsyncTask s, um Daten als Antwort auf das Drücken einer Taste durch den Benutzer abzurufen. Dies funktioniert gut und hält die Schnittstelle beim Abrufen der Daten ansprechend, aber als ich ausgecheckt habe, was im Eclipse-Debugger AsyncTask , fand ich heraus, dass jedes Mal eine neue AsyncTask erstellt wurde (was ziemlich oft ist, weil […]

Die Referenzzuweisung ist atomar. Warum wird Interlocked.Exchange (ref Object, Object) benötigt?

In meinem Multithread asmx-Webdienst hatte ich ein classnfeld _allData meines eigenen Typs SystemData, das aus wenigen List und Dictionary die als volatile markiert sind. Die Systemdaten ( _allData ) werden von Zeit zu Zeit aktualisiert, indem ich ein newData Objekt namens newData und seine Datenstrukturen mit neuen Daten fülle. Wenn es fertig ist, weise ich […]

Sind Java statische Initialisierer threadsicher?

Ich verwende einen statischen Codeblock, um einige Controller in einer Registry zu initialisieren, die ich habe. Meine Frage ist daher, kann ich garantieren, dass dieser statische Codeblock nur einmal beim ersten Laden der class aufgerufen wird? Ich verstehe, dass ich nicht garantieren kann, wenn dieser Codeblock aufgerufen wird, ich rate es, wenn der Classloader ihn […]