2017-05-04 1 views
0

J'ai créé un pool de threads avec la valeur 5. Après avoir affecté les tâches à 5 threads, le worker doit attendre de créer le thread jusqu'à ce qu'un thread soit libre dans Threadpool. Alors, comment trouver, n'importe quel thread est libre dans un pool de threads?Comment détecter s'il y a un thread inactif dans un ThreadPool?

Merci à l'avance ....

+0

Il y a beaucoup d'informations sur la page [Javadocs] (https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html) – tar

+0

Merci beaucoup, tar . J'ai déjà regardé dedans. Mais après avoir vu la réponse de Rahul Singh et votre commentaire, j'ai compris la page Javadocs. –

Répondre

2
if (thread instanceof ThreadPoolExecutor) { 
    System.out.println(
     "Pool size is now " + 
     ((ThreadPoolExecutor) pool).getActiveCount() 
    ); 
} 

Prenant en considération que le nom du ExecutorService est thread, cela vous donne le fil actif et vous pouvez maintenant obtenir les fils libres.