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.
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 …
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 …
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 …
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 …
Was ist der einfachste Weg, um zu warten, bis alle Aufgaben erledigt sind ExecutorService? Meine Aufgabe ist in erster Linie rechnerisch, daher möchte ich nur eine große Anzahl von Jobs ausführen - einen auf jedem Kern. Im Moment sieht mein Setup so aus: ExecutorService es = Executors.newFixedThreadPool(2); for (DataTable singleTable …
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());
newCachedThreadPool() gegen newFixedThreadPool() Wann sollte ich das eine oder andere verwenden? Welche Strategie ist in Bezug auf die Ressourcennutzung besser?
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 …
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 …
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 …
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 …
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, …
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 …
Ist die ExecutorServiceGarantie Thread - Sicherheit? Ich werde Jobs von verschiedenen Threads an denselben ThreadPoolExecutor senden. Muss ich den Zugriff auf den Executor synchronisieren, bevor ich Aufgaben interagiere / sende?
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 …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.