Bon après-midi.
Il y a une question pour une interview comme celle-ci.
Combien de façons de créer des fils de discussion connaissez-vous ? Le chiffre 2 apparaît dans les réponses : soit create
Thread
, en le passant
Runnable
, soit crée un objet d'une classe descendante
Thread
dans laquelle
run()
. Mais je me demandais : est-ce que c'est deux ? Si vous utilisez
concurrent
, par exemple,
Executors.newFixedThreadPool(5)
lorsque les objets thread sont créés, immédiatement lorsque cette méthode est exécutée, ou plus tard, lorsque les tâches apparaissent pour exécution (après tout, elles peuvent ne pas apparaître). Toutes ces méthodes d'usine renvoient une sorte de configuration
ThreadPoolExecutor
, qui possède l'un des paramètres de configuration.
corePoolSize
A propos de ce champ, il est écrit :
corePoolSize
– le nombre de threads à conserver dans le pool,
même s'ils sont inactifs , à moins
allowCoreThreadTimeOut
qu'il ne soit défini. si les tâches n'arrivent pas, alors nous avons créé 5 travailleurs inactifs, peut-être qu'ils commencent à être créés lorsque les tâches commencent à arriver ?
En général, 2 ou 3 options peuvent encore être retenues pour répondre à la question ?
GO TO FULL VERSION