Funktioniert gut ...
Ich bevorzuge die Verwendung eines ExecutorService persönlich.
UPDATE mit ExecutorService Beispiel
Also habe ich dieses wirklich schnelle Beispiel geschrieben ...
Im Grunde verwendet es ExecutorService
, um ein paar einfache Aufgaben auszuführen. So wie es aussieht, laufen beide Aufgaben parallel (gleichzeitig)
Führe es aus ...
Ändern Sie nun ExecutorService service = Executors.newFixedThreadPool(2);
in ExecutorService service = Executors.newFixedThreadPool(1);
und führen Sie es erneut aus. Hast du den Unterschied gesehen?
Auf diese Weise können Sie die Anzahl der Threads steuern, die der Executor bei der Verarbeitung seiner Warteschlange verwenden kann.
Machen Sie weitere Aufgaben und fügen Sie sie zur Warteschlange hinzu und sehen Sie, was Sie bekommen.