Articles of Multithreading

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 […]

Multithread Quicksort oder Mergesort

Wie kann ich einen gleichzeitigen Quicksort– oder Mergesort-Algorithmus für Java implementieren? Wir hatten Probleme auf einem Mac mit 16 (virtuellen) coreen, wo nur ein core (!) Mit der standardmäßigen Java-Sortieralgo funktionierte, und es war gut, nicht zu sehen, dass diese sehr feine Maschine komplett unterausgelastet war. Also haben wir unser eigenes geschrieben (ich habe es […]

Welche Operationen sind in C # atomar?

Gibt es einen systematischen Weg zu wissen, ob eine Operation in C # atomar sein wird oder nicht? Oder gibt es allgemeine Richtlinien oder Faustregeln?