Ich habe ein Programm, das Threads (~ 5-150) erzeugt, die eine Reihe von Aufgaben ausführen. Ursprünglich habe ich a verwendet, FixedThreadPool
weil 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 Minuten) als " langlebig " angesehen.
Ich habe jedoch kürzlich die Möglichkeit hinzugefügt, zusätzliche Threads zu erzeugen, wodurch ich über das von mir festgelegte Thread-Limit hinausgehe. Wäre es in diesem Fall besser, die Anzahl der Threads zu erraten und zu erhöhen, die ich zulassen kann, oder zu einem zu wechseln, CachedThreadPool
damit ich keine verschwendeten Threads habe?
Wenn ich sie beide vorab ausprobiere, scheint es keinen Unterschied zu geben, also neige ich dazu, mich CachedThreadPool
nur für die Verschwendung zu entscheiden. Bedeutet die Lebensdauer der Threads jedoch, dass ich stattdessen eine auswählen FixedThreadPool
und mich nur mit den nicht verwendeten Threads befassen sollte? Diese Frage lässt den Eindruck entstehen, dass diese zusätzlichen Themen nicht verschwendet werden, aber ich würde mich über die Klarstellung freuen.