Guten Tag.
Es gibt eine Frage für ein Interview wie dieses.
Wie viele Möglichkeiten zum Erstellen von Threads kennen Sie? Die Zahl 2 erscheint in den Antworten: entweder create
Thread
, pass it
Runnable
, or create an object of a Nachkommenklasse
Thread
in which
run()
. Aber ich fragte mich: Sind es zwei?
concurrent
Wenn Sie beispielsweise verwenden ,
Executors.newFixedThreadPool(5)
dann, wenn Thread-Objekte erstellt werden, sofort, wenn diese Methode ausgeführt wird, oder später, wenn Aufgaben zur Ausführung erscheinen (schließlich werden sie möglicherweise nicht angezeigt). Alle diese Factory-Methoden geben eine Art Konfiguration zurück
ThreadPoolExecutor
, die einen der Konfigurationsparameter enthält.
corePoolSize
Über dieses Feld wird geschrieben:
corePoolSize
– die Anzahl der Threads, die im Pool gehalten werden sollen,
auch wenn sie inaktiv sind , sofern
allowCoreThreadTimeOut
nicht festgelegt. Andererseits Wenn die Aufgaben nicht angekommen sind, haben wir 5 Arbeiter im Leerlauf erstellt. Vielleicht beginnen sie mit der Erstellung, wenn Aufgaben eintreffen?
Generell kommen als Antwort auf die Frage noch 2 oder 3 Möglichkeiten in Betracht?
GO TO FULL VERSION