Articles of Multithreading

ThreadLocal & Speicherleck

Es wird bei mehreren Posts erwähnt: ThreadLocal Verwendung von ThreadLocal verursacht Memory Leak. Ich habe Mühe zu verstehen, wie Memory Leak mit ThreadLocal passieren ThreadLocal . Das einzige Szenario, das ich herausgefunden habe, ist wie folgt: Ein Webserver unterhält einen Pool von Threads (zB für Servlets). Diese Threads können Speicherverlust verursachen, wenn die Variablen in […]

Was sind die Hauptverwendungen von yield () und wie unterscheidet es sich von join () und interrupt ()?

Ich bin ein wenig verwirrt über die Verwendung der yield() -Methode in Java, speziell im Beispielcode unten. Ich habe auch gelesen, dass yield () verwendet wird, um die Ausführung eines Threads zu verhindern. Meine Fragen sind: Ich glaube, dass der folgende Code sowohl bei Verwendung von yield() als auch bei yield() dieselbe Ausgabe yield() . […]

Der richtige Weg, um eine nie endende Aufgabe zu implementieren. (Timer gegen Aufgabe)

Daher muss meine App fast ununterbrochen eine Aktion ausführen (mit einer Pause von etwa 10 Sekunden zwischen jedem Durchlauf), solange die App ausgeführt wird oder eine Stornierung angefordert wird. Die Arbeit, die es zu tun hat, hat die Möglichkeit, bis zu 30 Sekunden zu dauern. Ist es besser, einen System.Timers.Timer zu verwenden und AutoReset zu […]

Was ist ein Deadlock?

Beim Schreiben von Multithread-Anwendungen sind Deadlocks eines der häufigsten Probleme. Meine Fragen an die Community sind: Was ist ein Deadlock? Wie finden Sie sie? Gehst du mit ihnen um? Und schließlich, wie verhindern Sie, dass sie auftreten?

Wie man einen Faden stoppt?

Wenn ein Thread am Leben ist, wie kann ich den Thread stoppen? Ich habe wie gegeben if(thread.isAlive()){ thread.stop(); } aber der Stopp der Methode ist veraltet und verursacht eine Ausnahme 01-21 14:12:40.188: ERROR/global(535): Deprecated Thread methods are not supported. 01-21 14:12:40.188: ERROR/global(535): java.lang.UnsupportedOperationException 01-21 14:12:40.188: ERROR/global(535): at java.lang.VMThread.stop(VMThread.java:85) 01-21 14:12:40.188: ERROR/global(535): at java.lang.Thread.stop(Thread.java:1379) 01-21 14:12:40.188: […]

Wie man einen Thread in Java von einem anderen Thread pausiert und fortsetzt

Ich schreibe eine Anwendung mit Java Swing. Was ich brauche, ist eine Prozedur, bei der ich den Thread “Ausarbeitung” mit einem Knopf in der grafischen Oberfläche stoppen kann. Hier konzentrierte sich ein einfaches Projekt auf das, was ich brauche import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JTextArea; /* * To change this template, choose Tools | Templates […]

Wie pausiere und wiederhole dann einen Thread?

Ich behaupte, dass ich über Thread gelesen habe, aber ich habe noch nie benutzt. Also ich frage dich 🙂 Ich habe zwei Threads: A und B , wobei A die GUI verwaltet und B die Logik verwaltet. Ich würde mit A anfangen. Dann, wenn A die GUI zeichne, würde ich es anhalten, um B zu […]

Der Thread wird gestartet, bevor Thread.start aufgerufen wird

t1=threading.Thread(target=self.read()) print “something” t2=threading.Thread(target=self.runChecks(), args=(self)) self.read läuft unbegrenzt, so dass das Programm niemals die print . Wie ist das möglich, ohne t1.start() ? (Selbst wenn ich das nenne, sollte es anfangen zu laufen und zur nächsten Zeile überzugehen, oder?)

Erstellen eines Threads in DllMain?

Es scheint, dass wenn ein Thread innerhalb von DllMain bei DLL_PROCESS_ATTACH es nicht beginnen wird, bis alle DLLs geladen worden sind. Da ich sicherstellen muss, dass der Thread läuft, bevor ich fortfahre, bekomme ich einen Deadlock. Gibt es eine Möglichkeit, den Thread zum Starten zu zwingen?

Warum wird die Cross-Thread-Operation nicht ausgetriggers, während exe in bin \ Debug ausgeführt wird?

Ich debuggte eine Anwendung und irgendwo im Code versucht ein Thread, eine Listbox zu erreichen, die von einem anderen Thread erstellt wurde. Bei dem Versuch, auf das Listenfeld zuzugreifen, triggers die Anwendung während des Debuggens die Fehlermeldung ” Ungültige Thread-Operation nicht gültig: Control- Listbox ” aus, auf die von einem anderen Thread als der Thread […]