Articles of Multithreading

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?

Was ist ein Semaphor?

Ein Semaphor ist ein Programmierkonzept, das häufig zur Lösung von Multithreading-Problemen verwendet wird. Meine Frage an die Community: Was ist ein Semaphor und wie benutzt man ihn?

Ist das ein idiomatischer Worker-Thread-Pool in Go?

Ich versuche einen einfachen Worker Pool mit Goroutines zu schreiben. Ist der Code, den ich geschrieben habe, idiomatisch? Wenn nicht, was sollte sich ändern? Ich möchte in der Lage sein, die maximale Anzahl von Worker-Threads auf 5 festzulegen und zu blockieren, bis ein Worker verfügbar wird, wenn alle 5 beschäftigt sind. Wie würde ich dies […]

Wie pausiere / setze ich Thread in Android fort?

Ich habe einen Thread, der in eine Aktivität mündet. Ich möchte nicht, dass der Thread fortlaufend ausgeführt wird, wenn der Benutzer auf die Home-Schaltfläche klickt oder beispielsweise der Benutzer ein Telefonat erhält. Daher möchte ich den Thread anhalten und fortsetzen, wenn der Benutzer die Anwendung erneut öffnet. Ich habe es mit folgendem versucht: protected void […]

Warum sollte wait () immer innerhalb einer Schleife aufgerufen werden?

Ich habe gelesen, dass wir wait() innerhalb einer Schleife aufrufen sollten: while (!condition) { obj.wait(); } Es funktioniert gut ohne eine Schleife, also warum ist das?

Wie mache ich meine ArrayList Thread-Safe? Ein anderer Ansatz für Probleme in Java?

Ich habe eine ArrayList, mit der ich RaceCar-Objekte aufnehmen kann, die die Thread-class erweitern, sobald sie fertig sind. Eine class namens Race behandelt diese ArrayList mit einer Callback-Methode, die das RaceCar-Objekt aufruft, wenn die Ausführung abgeschlossen ist. Die Callback-Methode addFinisher (RaceCar-Finisher) fügt der ArrayList das RaceCar-Objekt hinzu. Dies soll die Reihenfolge angeben, in der die […]

Aus einem anderen Thread in eine TextBox schreiben?

Ich kann nicht herausfinden, wie eine C # Windows Form-Anwendung in ein Textfeld aus einem Thread geschrieben wird. Zum Beispiel haben wir in der Program.cs den Standard main (), der das Formular zeichnet: static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } Dann haben wir in Form1.cs: public Form1() { InitializeComponent(); new Thread(SampleFunction).Start(); } public […]