ExecutorService pausieren

  • Themenstarter Themenstarter execBam
  • Beginndatum Beginndatum
E

execBam

Gast
Hey Leute,

ich nutze erfolgreich einen ThreadPool (ExecutorService)!

Ich fage mich allerdings wie ich alle Threads im Threadpool pausieren kann?
Stoppen ging ja mit shutDown() und shutDownNow() aber pausieren?

Pls Help ^^
 
das Starten neuer Tasks kann man vielleicht unterbinden,
Suche 'executorservice pause'
Ergebnis etwa
multithreading - How to pause/resume all threads in an ExecutorService in Java? - Stack Overflow

aber einen laufenden Thread zu unterbrechen ist von außen immer schwierig, da hat der ExecutorService auch nicht mehr Macht:
wenn einmal run() von eines Taks aufgerufen wird, hat niemand mehr was zu melden außer dieser Code des Tasks,
genau wie bei einem normalen Thread,
man kann interrupt() aufrufen aber wenn nicht darauf gehört wird?
 
Auf jeden Fall schwierig. Man müßte noch genauer wissen, ob du den Executor pausieren willst (so dass er erstmal keine neuen Runnables mehr verarbeitet) oder of die Runnables selbst pausiert werden sollen. Für letzteres müßte man alle Runnables, die gerade abgearbeitet werden, per Referenz kennen (sollte notfalls durch überschreiben durch beforeExec/afterExec möglich sein) und in denen dann ein "paused"-Flag setzen. Für ersteres ... wüßte ich spontan nichts, aber ... evtl. würde es dafür schon reichen, zu verhindern, dass dem Executor überhaupt neue Runnables zugeschanzt werden....

EDIT: Hä, der Post war eine Weile offen, aber anscheinend kam da nicht die Meldung, dass schon jemand anderes geantwortet hat...
 
@Marco13
ich benutzte ja wie gesagt normalerweise 'Direkt antworten', da funktioniert das alles nicht so sehr 😉
mal sehen ob ich mich umstellen kann, bei diesem Thema nach einen Tag ja nun wirklich kein Konflikt zu erwarten
 

Zurück
Oben