J'ai principalement une utilisation intensive du processeur qui s'exécute sur un pool de threads. L'opération a cependant un certain nombre d'événements externes d'attente qui ne se produisent pas uniformément dans le temps. Comme en Java, pour autant que je sache, il n'existe pas d'implémentation de pool de threads qui dimensionne automatiquement le nombre de threads en fonction du débit de la tâche observée (comme dans CLR 4 de Microsoft). augmenter sa taille quand une opération de blocage commence et diminuer quand elle se termine?Surinscription de pool de threads Java
Par exemple avec 8 cœurs, la taille du pool est 8. Si le fonctionnement est lié à 100% CPU, utilisez simplement ce pool fixe. S'il y a une opération de blocage, on devrait pouvoir le faire:
pool.increase();
waitForSpecialKeyPress();
pool.decrease();
Voici comment cela se fait dans la bibliothèque de Microsoft C++ Async: Use Oversubscription to Offset Latency