Articles of Multithreading

Vergleichen Sie mit Thread.Sleep und Timer für die verzögerte Ausführung

Ich habe eine Methode, die für eine bestimmte Zeit verzögert ausgeführt werden sollte. Sollte ich es benutzen Thread thread = new Thread(() => { Thread.Sleep(millisecond); action(); }); thread.IsBackground = true; thread.Start(); Oder Timer timer = new Timer(o => action(), null, millisecond, -1); Ich hatte einige Artikel über die Verwendung von Thread.Sleep gelesen. Aber ich verstehe […]

Führen Sie Code in UI-Thread in WinRT aus

Wie kann ich Code auf dem UI-Thread in WinRT (Windows 8 Metro) ausführen? Die Invoke Methode existiert nicht.

Was ist die empfohlene Methode zum Erstellen von Threads von einem Servlet in Tomcat

Wahrscheinlich eine Wiederholung! Ich benutze Tomcat als meinen Server und möchte wissen, was am besten ist, um Threads im Servlet mit deterministischen Ergebnissen zu erzeugen. Ich führe einige lange laufende Updates von einer Servlet-Aktion aus und möchte, dass die Anforderung abgeschlossen und die Aktualisierungen im Hintergrund ausgeführt werden. Anstatt eine Messaging-Middleware wie RabbitMQ hinzuzufügen, dachte […]

Was passiert mit einem gelöschten Thread, wenn main () beendet wird?

Angenommen, ich starte einen std::thread und detach() dann, so dass der thread weiter ausgeführt wird, obwohl der std::thread , der ihn einmal dargestellt hat, den Gültigkeitsbereich verlässt. Nehmen Sie weiterhin an, dass das Programm kein zuverlässiges Protokoll zum Verbinden des gelöschten Threads 1 hat , sodass der getriggerse Thread weiterhin ausgeführt wird, wenn main() . […]

Wie kann ich ABA-Zähler mit C ++ 11 CAS implementieren?

Ich implementiere eine blockierungsfreie Warteschlange basierend auf diesem Algorithmus , der einen Zähler verwendet, um das ABA-Problem zu lösen. Aber ich weiß nicht, wie man diesen Zähler mit C ++ 11 CAS implementiert. Zum Beispiel aus dem Algorithmus: E9: if CAS(&tail.ptr->next, next, ) Es ist eine atomare Operation, dh wenn tail.ptr->next gleich next ist, tail.ptr->next […]

Was sind die richtigen Linkoptionen, um std :: thread in GCC unter Linux zu verwenden?

Hi ich versuche std::thread mit G ++ zu verwenden. Hier ist mein Testcode #include #include int main(int, char **){ std::thread tt([](){ std::cout<<"Thread!"<<std::endl; }); tt.join(); } Es kompiliert, aber wenn ich versuche, es auszuführen, ist das Ergebnis: terminate called after throwing an instance of ‘std::system_error’ what(): Operation not permitted Aborted Meine Compiler-Version: $ g++ –version g++ […]

Java warten und benachrichtigen: IllegalMonitorStateException

Ich verstehe nicht vollständig, wie wait und notify (von Object ) arbeiten, und als Ergebnis bin ich gezwungen, meine Versuche in den folgenden Codeabschnitt zu reduzieren. Haupt.java: import java.util.ArrayList; class Main { public static Main main = null; public static int numRunners = 4; public static ArrayList runners = null; public static void main(String[] args) […]

Warum nicht einen Thread im Konstruktor starten? Wie kündigen?

Ich lerne, wie man Fäden in Java benutzt. Und ich schrieb eine class, die Runnable implementiert, um gleichzeitig mit einem anderen Thread zu laufen. Der Haupt-Thread behandelt den seriellen Port, während der zweite Thread Daten an denselben Port sendet. public class MyNewThread implements Runnable { Thread t; MyNewThread() { t = new Thread (this, “Data […]

Rekursive Sperre (Mutex) vs nicht-rekursive Sperre (Mutex)

POSIX erlaubt Mutexen rekursiv zu sein. Das heißt, derselbe Thread kann den gleichen Mutex zweimal sperren und wird nicht deadlock. Natürlich muss es auch zweimal entsperrt werden, sonst kann kein anderer Thread den Mutex erhalten. Nicht alle Systeme, die pthreads unterstützen, unterstützen auch rekursive Mutexe, aber wenn sie POSIX-konform sein wollen, müssen sie dies tun […]

Grüne Threads gegen nicht grüne Threads

Ich würde gerne die Vorteile dieser Art von Gewinde verstehen. In welchen Umgebungen sind grüne Fäden besser als nicht grüne? Einige sagen, dass grüne Threads besser für Multi-Core-processoren sind. Irgendwelche erwarteten Verhaltensprobleme.