Question sur le fonctionnement du ThreadPoolExecutor
Jean-Marc Desprez <[email protected]>
| Newsgroups | gmane.comp.java.french.general |
|---|---|
| Message-ID | <[email protected]> |
Bonjour, Je crée un ThreadPoolExecutor de cette façon : new ThreadPoolExecutor(5, 10, 120, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(20, true)); J'exécute donc 5 Thread en parallèle mais lorsque la Queue arrive à saturation je peux monter jusque 10. Imaginons que j'ai justement 5 Thread en cours (R1 -> R5) et 20 en attente (Q1 -> Q20) Lorsqu'un nouveau Thread est nécessaire (T1), la javadoc indique ceci : If a request cannot be queued, a new thread is created unless this would exceed maximumPoolSize, in which case, the task will be rejected. Comme il n'y a pas la place de mettre T1 dans la Queue et que je n'ai pas atteint la limite haute, je m'attendais à ce Q1 soit exécuté et que T1 soit mis en fin de Queue. Cependant, c'est T1 qui est exécuté tout de suite :-( Y a t'il un moyen pour obtenir le fonctionnement désiré ? Merci Jean-Marc