Salut,
Dans une des libraries de Google, il existe un objet RateLimiter qui je pense fera parfaitement l'affaire dans ton scenario :
API : https://guava.dev/releases/19.0/api/...teLimiter.html
Tutorial : https://www.baeldung.com/guava-rate-limiter
Tu devra sans doute restreindre le nombre de requetes entrantes dans ton systeme car ta queue n'est pas extensible a l'infini (Ta limite etant la quantite de memoire disponible pour ton programme).
Je pense egalement qu'utiliser un thread different pour inserer les elements d'un vector dans ta queue n'est pas indispensable.
Quoi qu'il en soit tu devras utiliser un nombre de threads fixe que sera au maximum le nombre de cores disponibles pour ton programme, recuperable par le code :
Runtime.getRuntime().availableProcessors()
et de preference geres a l'aide d'un Executor : https://www.baeldung.com/java-executor-service-tutorial
Good luck !
Partager