Buon pomeriggio.
C'è una domanda per un'intervista come questa.
Quanti modi per creare thread conosci? Il numero 2 appare nelle risposte: o crea
Thread
, passalo
Runnable
, oppure crea un oggetto di una classe discendente
Thread
in cui
run()
. Ma mi sono chiesto: sono due? Se si utilizza
concurrent
, ad esempio,
Executors.newFixedThreadPool(5)
quando vengono creati gli oggetti thread, immediatamente quando viene eseguito questo metodo o successivamente, quando le attività vengono visualizzate per l'esecuzione (dopo tutto, potrebbero non apparire). Tutti questi metodi factory restituiscono una sorta di configurazione
ThreadPoolExecutor
, che ha uno dei parametri di configurazione.
corePoolSize
In questo campo è scritto:
corePoolSize
– il numero di thread da tenere nel pool,
anche se sono inattivi , a meno che
allowCoreThreadTimeOut
non sia impostato D'altra parte, se le attività non sono arrivate, abbiamo creato 5 lavoratori inattivi, forse iniziano a essere creati quando le attività iniziano ad arrivare?
In generale, si possono ancora tenere presenti 2 o 3 opzioni come risposta alla domanda?
GO TO FULL VERSION