Frage

Ich habe eine Frage, die zu möglichen Overhead von ExecutorServices 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 Handgriffart B Fäden
  • oder soll ich die Kapazität ExecutorService A und Lauftyp B Fäden mit, dass man erhöhen als auch?

Ich denke, dass es vielleicht einiger zusätzlicher Aufwand für Java wird zwei ExecutorServices haben, aber auf der anderen Seite die Gesamtzahl der Threads wird so oder so erhöhen. Ist es überhaupt eine Rolle?

War es hilfreich?

Lösung

werde ich zwei ExecutorServices empfehlen, dann können Sie die Vorteile der verschiedenen ExecutorServices 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 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top