Ich plane, einen einstellbaren Thread-Pool mit einstellbarer Warteschlangengröße zu erstellen. Ich verwende unbegrenzte LinkedBlockingQueue mit einer externen Einstellung, die steuert, wie viele Nachrichten in die Warteschlange gestellt werden. Anfangs sind meine Kerngröße und die maximale Größe gleich. Wenn ich meine Threadpoolgröße zur Laufzeit aktualisieren möchte, setze ich Corespoolsize und Maxpoolsize über eine gemeinsame Einstellung auf einen anderen Wert. Ich würde gerne wissen, was Sie von diesem Ansatz halten.Einstellbarer Threadpool und Warteschlange
Wenn maxpoolsize auf Integer.MAX_VALUE gesetzt ist, kann ich Corespoolize einfach anpassen, da meine Warteschlange unbegrenzt ist?
Ist es eine bessere Idee, SynchroneQueue mit CallerRunsPolicy anstelle von LinkedBlockingQueue mit externer Steuerung zu verwenden?
WICHTIG: Ich möchte auch wissen, was passiert, wenn ich meine Corethreadpoolgröße reduziere, werden die laufenden Aufgaben in der Mitte abgebrochen?
http://stackoverflow.com/questions/5719279/how-to-modify-threadpooltaskexecutor-at-runtime-through-jmx –
Warum nicht versuchen Sie es CachedThreadPool mit? http://stackoverflow.com/questions/17957382/fixedthreadpool-vs-cachedthreadpool-the-lesser-of-two-evils –
CachedThreadPool wird mir nicht helfen, wie ich Threadpoolsize zur Laufzeit erhöhen/verringern möchte. – theeminence