Ich muss einen Weg finden, einen Thread von einem statischen Aufruf abzutrennen und nicht auf den Thread zu warten. Grundsätzlich ein "Feuer und Vergessen" -Ansatz. Kann mir jemand ein einfaches Beispiel geben, wie dies erreicht werden kann?
Wenn es sich um einen langlebigen Thread handelt, der einen ähnlichen Lebenszyklus wie Ihre App selbst hat und viel Zeit damit verbringen wird, auf andere Threads zu warten:
%Vor%Wenn es sich um eine kurzlebige, CPU-gebundene Aufgabe handelt:
%Vor% In den meisten Fällen werden Sie jedoch eine Reihe von Aufgaben an dasselbe ExecutorService
senden.
Abhängig von der Art Ihrer Aufgabe, können verschiedene Wege möglich sein:
(1) Wie viele bereits erwähnt haben, ist es für eine gelegentliche Aufgabe üblich, einfach einen -Thread zu konstruieren und seine start () -Methode aufzurufen.
(2) Denken Sie daran, dass, wenn Ihr Hintergrund-Thread nicht aufhört, standardmäßig verhindert, dass Ihr Programm heruntergefahren wird, wenn andere Threads beendet sind. Sie möchten daher möglicherweise setDaemon (true) im Thread aufrufen, damit dieses Verhalten nicht auftritt. (Bei Anwendungen auf der Basis von GUI endet der Aufruf von System.exit () jedoch in der Regel am Ende, und im Idealfall würden Sie in Ihre langwierige Aufgabe einen sauberen Weg zum Herunterfahren einfügen .)
(3) Wenn Sie häufig kurzlebige Aufgaben zum "feuern und vergessen" haben, sollten Sie die Executors-Framework ab Java 5 verfügbar.
Tags und Links java multithreading