In Fortsetzung zu einem question von mir gepostet, versuche ich ThreadPoolExecutor in meiner Codebasis zu verwenden. Selbst nach wiederholten Versuchen, das Java-API-Dokument zu verstehen, konnte ich die Funktionalität/den Zweck hinter dem keepAliveTime
-Parameter, der im Konstruktor übergeben werden soll, nicht klar verstehen. Hoffe jemand kann mir ein gutes Arbeitsbeispiel erklären.Wie funktioniert Keep-Alive mit ThreadPoolExecutor?
Auszüge aus Java doc:
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue)
keepAliveTime
- , wenn die Anzahl der Threads größer ist als der Kern ist, ist dies die maximale Zeit, die überschüssigen Leerlauf-Threads für neue Aufgaben warten vor dem Beenden.
Genau wie ein Punkt der Terminologie zeigt, haben Sie zweimal das Wort „implementieren“, wenn ich glaube, Sie nur „Verwendung“ bedeutet. Sie versuchen nicht, * ThreadPoolExecutor * zu implementieren, indem Sie Ihren eigenen Code schreiben, der diese API implementiert - Sie erstellen gerade einen 'ThreadPoolExecutor' und wollen wissen, wie sich das verhält, richtig? –
Ja, du hast Recht. Ich habe nur gesagt, dass es eine neue Art von Implementierung in meiner Codebasis ist. – Gnanam
Aber es ist keine Implementierung * von * 'ThreadPoolExecutor'. Es ist sehr hilfreich, wenn Sie die Terminologie entsprechend verwenden können - * besonders * auf Stack Overflow. –