Als «executorservice» getaggte Fragen

ExecutorService ist ein Java-Objekt, das den verwalteten Thread-Pool enthält und die übermittelten Aufgaben für diese Threads planen kann. Die Planungsstrategien variieren in mehreren verfügbaren Implementierungen.

25
Wie kann ich mit ExecutorService warten, bis alle Threads abgeschlossen sind?
Ich muss eine bestimmte Anzahl von Aufgaben 4 gleichzeitig ausführen, ungefähr so: ExecutorService taskExecutor = Executors.newFixedThreadPool(4); while(...) { taskExecutor.execute(new MyTask()); } //...wait for completion somehow Wie kann ich benachrichtigt werden, wenn alle abgeschlossen sind? Im Moment kann ich mir nichts Besseres vorstellen, als einen globalen Aufgabenzähler zu setzen und ihn …

6
Java Timer vs ExecutorService?
Ich habe Code, mit dem ich eine Aufgabe mit plane java.util.Timer . Ich habe mich umgesehen und gesehen, dass ExecutorServiceich das Gleiche tun kann. Also, diese Frage hier, haben Sie Aufgaben verwendet Timerund ExecutorServicegeplant, was ist der Vorteil einer Verwendung gegenüber einer anderen? Wollte auch überprüfen, ob jemand die TimerKlasse …

17
Benennen von Threads und Thread-Pools von ExecutorService
Angenommen, ich habe eine Anwendung, die das ExecutorFramework als solches verwendet Executors.newSingleThreadExecutor().submit(new Runnable(){ @Override public void run(){ // do stuff } } Wenn ich diese Anwendung im Debugger ausführe, wird ein Thread mit dem folgenden (Standard-) Namen erstellt : Thread[pool-1-thread-1]. Wie Sie sehen können, ist dies nicht besonders nützlich, und …

12
Behandeln von Ausnahmen von Java ExecutorService-Aufgaben
Ich versuche Java zu verwenden ThreadPoolExecutor Klasse zu verwenden, um eine große Anzahl schwerer Aufgaben mit einer festen Anzahl von Threads auszuführen. Jede der Aufgaben hat viele Stellen, an denen sie aufgrund von Ausnahmen fehlschlagen kann. Ich habe eine Unterklasse erstellt ThreadPoolExecutorund die afterExecuteMethode überschrieben , die alle nicht erfassten …


7
Wählen Sie zwischen ExecutorService Submit und ExecutorService Execute
Wie soll ich wählen zwischen ExecutorService des einreichen oder ausführen , wenn der zurückgegebene Wert nicht meine Sorge ist? Wenn ich beide teste, sehe ich keine Unterschiede zwischen den beiden außer dem zurückgegebenen Wert. ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.execute(new Task()); ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.submit(new Task());


6
Wie bekomme ich eine Thread-ID aus einem Thread-Pool?
Ich habe einen festen Thread-Pool, an den ich Aufgaben sende (begrenzt auf 5 Threads). Wie kann ich herausfinden, welcher dieser 5 Threads meine Aufgabe ausführt (so etwas wie "Thread 3 von 5 erledigt diese Aufgabe")? ExecutorService taskExecutor = Executors.newFixedThreadPool(5); //in infinite loop: taskExecutor.execute(new MyTask()); .... private class MyTask implements Runnable …

13
Es ist unmöglich, einen zwischengespeicherten Thread-Pool mit einer Größenbeschränkung zu erstellen?
Es scheint unmöglich zu sein, einen zwischengespeicherten Thread-Pool mit einer Begrenzung der Anzahl der Threads zu erstellen, die er erstellen kann. So wird statisches Executors.newCachedThreadPool in der Standard-Java-Bibliothek implementiert: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); } Verwenden Sie diese Vorlage, um einen zwischengespeicherten …

3
FixedThreadPool vs CachedThreadPool: das kleinere von zwei Übeln
Ich habe ein Programm, das Threads (~ 5-150) erzeugt, die eine Reihe von Aufgaben ausführen. Ursprünglich habe ich a verwendet, FixedThreadPoolweil diese ähnliche Frage darauf hindeutete, dass sie besser für längerlebige Aufgaben geeignet sind, und mit meinen sehr begrenzten Kenntnissen über Multithreading habe ich die durchschnittliche Lebensdauer der Threads (mehrere …

9
ExecutorService, der Aufgaben nach einer Zeitüberschreitung unterbricht
Ich suche nach einer ExecutorService- Implementierung, die mit einem Timeout versehen werden kann. Aufgaben, die an den ExecutorService gesendet werden, werden unterbrochen, wenn die Ausführung länger als das Zeitlimit dauert. Die Implementierung eines solchen Tieres ist keine so schwierige Aufgabe, aber ich frage mich, ob jemand von einer vorhandenen Implementierung …

5
Grund für den Aufruf von shutdown () in ExecutorService
Ich habe in den letzten paar Stunden ziemlich viel darüber gelesen, und ich kann einfach keinen Grund ( gültigen Grund) erkennen, shutdown()auf den ExecutorServicezuzugreifen, es sei denn, wir haben eine riesige Anwendung, die Dutzende und Dutzende verschiedener Executor-Dienste speichert, für die sie nicht verwendet werden eine lange Zeit. Das einzige, …

7
Java: ExecutorService, der bei Übermittlung nach einer bestimmten Warteschlangengröße blockiert
Ich versuche, eine Lösung zu codieren, bei der ein einzelner Thread E / A-intensive Aufgaben erzeugt, die parallel ausgeführt werden können. Jede Aufgabe verfügt über signifikante In-Memory-Daten. Daher möchte ich in der Lage sein, die Anzahl der Aufgaben zu begrenzen, die gerade anstehen. Wenn ich ThreadPoolExecutor wie folgt erstelle: ThreadPoolExecutor …


8
Ausführen eines ExecutorService in einen Daemon in Java
Ich verwende einen ExecutoreService in Java 1.6, der einfach von gestartet wurde ExecutorService pool = Executors.newFixedThreadPool(THREADS). Wenn mein Hauptthread fertig ist (zusammen mit allen vom Thread-Pool verarbeiteten Aufgaben), verhindert dieser Pool, dass mein Programm heruntergefahren wird, bis ich explizit aufrufe pool.shutdown(); Kann ich vermeiden, dass ich dies aufrufen muss, indem …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.