Articles of Multithreading

Ist es sicher, Werte von einer java.util.HashMap aus mehreren Threads zu erhalten (keine Änderung)?

Es gibt einen Fall, in dem eine Map erstellt wird und nach der Initialisierung wird sie nie wieder geändert. Es wird jedoch nur über get (key) auf mehrere Threads zugegriffen. Ist es sicher, auf diese Weise eine java.util.HashMap zu verwenden? (Derzeit verwende ich glücklicherweise eine java.util.concurrent.ConcurrentHashMap , und habe keine messbare Notwendigkeit, die performance zu […]

Abrufen der Thread-ID aus einem Thread

In C # beim Debuggen von Threads können Sie beispielsweise die ID jedes Threads sehen. Ich konnte keinen Weg finden, den gleichen Thread programmatisch zu bekommen. Ich konnte nicht einmal die ID des aktuellen Threads (in den Eigenschaften von Thread.currentThread ) Thread.currentThread . Also, ich frage mich, wie Visual Studio die IDs der Threads erhält, […]

Verwenden von ThreadPool.QueueUserWorkItem in ASP.NET in einem Szenario mit hohem Datenverkehr

Ich hatte immer den Eindruck, dass die Verwendung des ThreadPools für (sagen wir mal nicht kritische) kurzlebige Hintergrundaufgaben als Best Practice galt, sogar in ASP.NET, aber dann stieß ich auf diesen Artikel , der etwas anderes vermuten lässt Argument, dass Sie den ThreadPool verlassen sollten, um mit ASP.NET-bezogenen Anfragen umzugehen. So habe ich bisher kleine […]

Thread-Pooling in C ++ 11

Relevante Fragen : Über C ++ 11: C ++ 11: Std :: Thread gepoolt? Wird async (launch :: async) in C ++ 11 Thread-Pools überflüssig machen, um teure Threads zu vermeiden? Über Boost: C ++ boost Thread wiederverwendet Threads boost :: thread und erstelle einen Pool von ihnen! Wie erhalte ich einen Pool von Threads, […]

“Java DateFormat ist nicht threadsicher” was bringt das?

Jeder warnt davor, dass Java DateFormat nicht threadsicher ist und ich verstehe das Konzept theoretisch. Aber ich bin nicht in der Lage zu visualisieren, welche tatsächlichen Probleme wir dadurch haben können. Angenommen, ich habe ein DateFormat-Feld in einer class und dasselbe wird in verschiedenen Methoden in der class (Formatierungsdaten) in einer Multi-Thread-Umgebung verwendet. Wird dies […]

Ist Task.Factory.StartNew () garantiert, einen anderen Thread als den aufrufenden Thread zu verwenden?

Ich beginne eine neue Aufgabe von einer function, aber ich möchte nicht, dass sie auf demselben Thread läuft. Es ist mir egal, auf welchem ​​Thread es läuft, solange es ein anderes ist (die Informationen in dieser Frage helfen also nicht). TestLock ich garantieren, dass der unten stehende Code TestLock immer TestLock bevor Task t ihn […]

Ist es schlau, boost :: thread und boost :: mutex durch C ++ 11-Äquivalente zu ersetzen?

Motivation: Der Grund, warum ich darüber nachdenke, ist, dass mein genialer Projektmanager denkt, dass Boost eine weitere Abhängigkeit ist und dass es schrecklich ist, weil “du davon abhängig bist” (Ich habe versucht, die Qualität von Boost zu erklären, dann gab ich nach einiger Zeit auf 🙁 Kleinerer Grund, warum ich das gerne machen würde, ist, […]

Thread.Sleep für weniger als 1 Millisekunde

Ich möchte Thread Sleep mit weniger als 1 Millisekunde aufrufen. Ich habe gelesen, dass weder thread.Sleep noch Windows-OS das unterstützen. Was ist die Lösung dafür? Für alle, die sich fragen, warum ich das brauche: Ich mache einen Stresstest und möchte wissen, wie viele Nachrichten mein Modul pro Sekunde verarbeiten kann. Also mein Code ist: // […]

Stdlibs rand () aus mehreren Threads verwenden

Ich habe mehrere Threads, die alle die gleiche function haben. In jedem von ihnen erzeugen sie mehrmals eine andere Zufallszahl. Wir haben versucht, dies zu tun, indem srand(time(0)) am Anfang der function setzen, aber es scheint, dass alle dieselbe Nummer bekommen. Müssen wir srand(time(0)) nur einmal pro Programm aufrufen, srand(time(0)) am Anfang von main (zum […]

Technisch gesehen, warum sind processe in Erlang effizienter als OS-Threads?

Erlangs Eigenschaften Aus Erlang Programmierung (2009): Erlang Concurrency ist schnell und skalierbar. Seine processe sind leichtgewichtig, da die virtuelle Erlang-Maschine keinen Betriebssystem-Thread für jeden erstellten process erstellt. Sie werden in der VM erstellt, geplant und verarbeitet, unabhängig vom zugrunde liegenden Betriebssystem. Infolgedessen ist die process-Erzeugungszeit in der Größenordnung von Mikrosekunden und unabhängig von der Anzahl […]