Articles of Multithreading

Wie man einen Thread in Java schnell und sauber abbricht?

Hier ist mein Problem: Ich habe einen Dialog mit einigen Parametern, die der Benutzer ändern kann (zB über einen Spinner). Jedes Mal, wenn einer dieser Parameter geändert wird, starte ich einen Thread, um eine 3D-Ansicht entsprechend dem neuen Parameterwert zu aktualisieren. Wenn der Benutzer einen anderen Wert ändert (oder den gleichen Wert erneut, indem er […]

Gibt es eine function “Block bis Bedingung wird wahr” in Java?

Ich schreibe einen Listener-Thread für einen Server, und im Moment verwende ich: while (true){ try { if (condition){ //do something condition=false; } sleep(1000); } catch (InterruptedException ex){ Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex); } } Mit dem Code oben, renne ich in Probleme mit der run-function essen alle CPU-Zeit Schleifen. Die Schlaffunktion funktioniert, aber es scheint eine provisorische […]

C #: Was passiert, wenn eine statische Methode von mehreren Threads aufgerufen wird?

In meiner Anwendung habe ich eine statische Methode, die von mehreren Threads gleichzeitig aufgerufen wird. Besteht die Gefahr, dass meine Daten durcheinander geraten? In meinem ersten Versuch war die Methode nicht statisch und ich habe mehrere Instanzen der class erstellt. In diesem Fall sind meine Daten irgendwie durcheinander geraten. Ich bin mir nicht sicher, wie […]

Ist EndInvoke () optional, optional oder definitiv nicht optional?

Ich habe widersprüchliche Meinungen darüber gelesen, ob jedem BeginInvoke () ein EndInvoke () zugeordnet werden muss. Gibt es Lecks oder andere Probleme mit dem Aufruf von EndInvoke ()?

Warum brauchen wir Thread.MemoryBarrier ()?

In “C # 4 in a Nutshell” zeigt der Autor, dass diese class manchmal ohne MemoryBarrier 0 schreiben kann, obwohl ich in meinem Core2Duo nicht reproduzieren kann: public class Foo { int _answer; bool _complete; public void A() { _answer = 123; //Thread.MemoryBarrier(); // Barrier 1 _complete = true; //Thread.MemoryBarrier(); // Barrier 2 } public […]

Wie erhält man den JNI-Schnittstellenzeiger (JNIEnv *) für asynchrone Aufrufe?

Ich habe gelernt, dass der JNI-Schnittstellenzeiger (JNIEnv *) nur im aktuellen Thread gültig ist. Angenommen, ich habe einen neuen Thread in einer nativen Methode gestartet. Wie kann es Ereignisse asynchron an eine Java-Methode senden? Da dieser neue Thread keine Referenz von (JNIEnv *) haben kann. Speichern einer globalen Variable für (JNIEnv *) wird offenbar nicht […]

Was bedeutet thread_local in C ++ 11?

Ich bin verwirrt mit der Beschreibung von thread_local in C ++ 11. Mein Verständnis ist, jeder Thread hat eine eindeutige Kopie von lokalen Variablen in einer function. Auf die globalen / statischen Variablen kann von allen Threads zugegriffen werden (möglicherweise synchronisierter Zugriff unter Verwendung von Sperren). Und die Variablen thread_local sind für alle Threads sichtbar, […]

Wie kann ein Thread, der auf dem Socket-IO-Betrieb blockiert, sofort beendet werden?

Im Kontext von Java erstelle ich einen neuen Thread, um die Netzwerkeingabe zu lesen, wenn ich ein GUI-Fenster öffne, und wenn ich das Fenster schließe, möchte ich die Socket-Ressource freigeben und den Thread sofort beenden. Jetzt benutze ich die Methode setSoTimeout, aber ich möchte nicht auf die Timeout-Ausnahme warten. Könnte irgendjemand einen Vorschlag geben? Vielen […]

Wie stellt man die CPU-Affinität eines bestimmten Pthreads ein?

Ich möchte die CPU-Affinität eines bestimmten Pthread angeben. Alle Referenzen, die ich bisher gefunden habe, betreffen die Einstellung der CPU-Affinität eines processes (pid_t) und nicht eines Threads (pthread_t). Ich habe einige Experimente ausprobiert, die pthread_t passieren lassen und wie erwartet scheitern sie. Versuche ich etwas Unmögliches zu tun? Wenn nicht, können Sie bitte einen pointers […]

Wie rufe ich eine Methode mit einem separaten Thread in Java auf?

Lassen Sie uns sagen, ich habe eine Methode doWork() . Wie rufe ich es aus einem separaten Thread (nicht den Hauptthread).