Bigger Thread oder zusätzliche ExecutorService wenn neue Art von Thread ausgeführt werden soll?
-
26-09-2019 - |
Frage
Ich habe eine Frage, die zu möglichen Overhead von ExecutorService
s in Java in Zusammenhang steht.
Die vorliegende Umsetzung wird mit einer Kapazität von 5 Fäden ExecutorService A
.
- Es läuft Fäden des Typs
A
. - Typ
A
Threads tun einige Datenbank Lesen und Schreiben.
Nun wird ein Faden vom Typ B
läuft nach einige Fäden des Typs A
beendet ist.
- Die Anzahl der Typ
B
Threads, die verschieden ist von Zeit zu Zeit ausgeführt wird. - Typ
B
Threads haben einige Dateisystem IO (nicht Datenbank).
Also sollte ich
- fügen Sie einen neuen
ExecutorService
zu HandgriffartB
Fäden - oder soll ich die Kapazität
ExecutorService A
und LauftypB
Fäden mit, dass man erhöhen als auch?
Ich denke, dass es vielleicht einiger zusätzlicher Aufwand für Java wird zwei ExecutorService
s haben, aber auf der anderen Seite die Gesamtzahl der Threads wird so oder so erhöhen. Ist es überhaupt eine Rolle?
Lösung
werde ich zwei ExecutorServices
empfehlen, dann können Sie die Vorteile der verschiedenen ExecutorService
s vom java.util.concurrent
Paket bereitgestellt nehmen.
Es macht den Code leichter und der Aufwand ist ignorable.
-
ExecutorService
ein mit einem festen Thread-Pool-Set zu fünf Themen. -
ExecutorService
b mit einem Cache gespeicherten Thread-Pool.
Andere Tipps
Wenn Sie etwa 5 Themen sprechen, und du bist nicht dein Thread-Pool Kapazität erschöpft, würde ich zu sagen, neigen dazu, dass der Aufwand gering sein woulld oder so, und Sie sollten nur gehen, was Sie halten die einfachste Weg zu sein .