Articles of Multithreading

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).

Ist eine HashMap Thread-sicher für verschiedene Schlüssel?

Wenn ich mit zwei Threads auf eine HashMap zugreifen kann, aber gleichzeitig garantiere, dass sie niemals auf den gleichen Schlüssel zugreifen, könnte das noch zu einer Race Condition führen?

Asynchron oder Multithreading – Gibt es einen Unterschied?

Erstellt ein asynchroner Aufruf immer einen neuen Thread? Was ist der Unterschied zwischen den beiden? Wird bei einem asynchronen Aufruf immer ein neuer Thread erstellt oder verwendet? Wikipedia sagt : In der Computerprogrammierung sind asynchrone Ereignisse diejenigen, die unabhängig vom Hauptprogrammablauf auftreten. Asynchrone Aktionen sind Aktionen, die in einem nicht blockierenden Schema ausgeführt werden, wodurch […]

Was bedeutet threadsafe?

Kürzlich habe ich versucht, auf ein Textfeld aus einem Thread (außer dem UI-Thread) zuzugreifen, und eine Ausnahme wurde ausgetriggers. Es sagte etwas über den “Code, der nicht threadsicher ist” und so schrieb ich einen Delegaten (Probe von MSDN half) und nannte es stattdessen. Aber ich habe nicht ganz verstanden, warum der zusätzliche Code notwendig war. […]