Articles of Multithreading

Thread Threading Ausnahme “thread_resource_error: Ressource vorübergehend nicht verfügbar”

Ich habe Code ähnlich dem folgenden Code boost::thread myThread unsigned char readbuffer[bignumber]; unsigned char writebuffer[bignumber]; for(int i=0; i<bignumber; ++i){ functiondostuff(); for(int j=0; j<2; ++j){ functiondomorestuff(); myThread = boost::thread(&myClass::myFunction, this, j, i); } } myFunction liest aus einem Puffer und schreibt in einen anderen. Es wird nie an den gleichen Ort im Schreibpuffer schreiben. Mache ich […]

GUI von einem anderen Thread in Java aktualisieren (swing)

Ich habe ein Hauptprogramm, in dem GUI auf Swing basiert und abhängig von einem von vier Zuständen die GUI-Elemente unterschiedliche Parameter haben. public class Frame extends JFrame implements Runnable { Status status = 1; … @Override public void run() { switch (status) { case 1: … case 2: … } public void updateGUI(Status status) { […]

ConfigureAwait schiebt die Fortsetzung auf einen Pool-Thread

Hier ist ein WinForms-Code: async void Form1_Load(object sender, EventArgs e) { // on the UI thread Debug.WriteLine(new { where = “before”, Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.IsThreadPoolThread }); var tcs = new TaskCompletionSource(); this.BeginInvoke(new MethodInvoker(() => tcs.SetResult(true))); await tcs.Task.ContinueWith(t => { // still on the UI thread Debug.WriteLine(new { where = “ContinueWith”, Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.IsThreadPoolThread }); }, TaskContinuationOptions.ExecuteSynchronously).ConfigureAwait(false); // on […]

Multithreaded & SIMD vektorisiert Mandelbrot in R mit Rcpp & OpenMP

Als OpenMP & Rcpp Performance Test wollte ich überprüfen, wie schnell ich das Mandelbrot-Set in R mit der einfachsten und einfachsten Rcpp + OpenMP Implementierung berechnen konnte. Derzeit habe ich Folgendes gemacht: #include #include // [[Rcpp::plugins(openmp)]] using namespace Rcpp; // [[Rcpp::export]] Rcpp::NumericMatrix mandelRcpp(const double x_min, const double x_max, const double y_min, const double y_max, const […]

Busy-Schleife in anderen Threads verzögert die EDT-Verarbeitung

Ich habe ein Java-Programm, das eine enge Schleife auf einem separaten (Nicht-EDT-) Thread ausführt. Obwohl ich denke, dass die Swing-Benutzeroberfläche immer noch reaktionsfähig sein sollte, ist dies nicht der Fall. Das folgende Beispielprogramm weist das Problem auf: Wenn Sie auf die Schaltfläche “Anprobieren” klicken, wird der Dialog mehr oder weniger eine halbe Sekunde später angezeigt. […]

Wann ist ein Java-Thread am Leben?

Dies ist eine ziemlich grundlegende Frage über das Vokabular von Java-Threads. Ich kann keine möglichen Duplikate sehen, aber es könnte sein. Worauf bezieht sich das Wort ” lebendig” in der Dokumentation von oracle? Ist es, wenn die Methode run() noch nicht abgeschlossen ist oder ist es ein anderer Parameter?

Odd-even-Nummer Drucken mit Thread

Odd-even-Nummer Drucken mit thread.Create eine Thread-class, zwei Instanzen des Threads. Einer wird die ungerade Zahl und der andere die gerade Zahl drucken. Ich habe die folgende Kodierung gemacht. Aber es kommt zum toten Sperrzustand. Kann jemand erklären, was der Grund dafür sein könnte? public class NumberPrinter implements Runnable{ private String type; private static boolean oddTurn=true; […]

Kann x86 einen engen Laden mit einer größeren Ladung neu ordnen, die ihn vollständig enthält?

Intel® 64 und IA-32 Architekturen Software Entwicklerhandbuch sagt: 8.2.3.4 Lasten können mit früheren Speichern an verschiedenen Orten neu angeordnet werden Das Intel-64-Speicherordnungsmodell ermöglicht die Neuordnung eines Ladevorgangs mit einem früheren Speicher an einem anderen Speicherort. Lasten werden jedoch nicht mit Speichern an denselben Speicherort neu angeordnet. Was ist mit Ladungen, die frühere Geschäfte teilweise oder […]

Throttling javafx GUI Updates

Ich empfange Datenobjekte zu zufälligen Zeiten mit einer hohen Frequenz und muss die JavaFX GUI mit diesen aktualisieren. Ich möchte jedoch die javafx Event Queue nicht mit einer sehr großen Anzahl von Runnables füllen (ich benutze Platform.RunLater). Ich habe darüber nachgedacht, wie man am besten einen Drosselungsalgorithmus implementiert. Wäre es am besten, einen separaten GUIUpdater-Thread […]

Liste der Threads abrufen

Ich möchte alle laufenden Threads auflisten, aber nicht mit der List class. Ich möchte laufende Threads dynamisch beobachten. Wie kann ich das machen?