Op dit moment heb ik deze Groovy-code om een aantal taken uit te voeren:
CountDownLatch latch = new CountDownLatch(tasks.size);
for( task in tasks ) {
Thread.start worker.curry(task, latch)
}
latch.await(300L, TimeUnit.SECONDS);
Ik zou het aantal gelijktijdige discussies willen beperken tot een bepaald aantal t
. De manier waarop het nu is geschreven, voor n
taken, n
threads wordt "in één keer" aangemaakt. Ik dacht aan het gebruik van meerdere latches of een soort callback, maar kon geen goede oplossing bedenken.
De oplossing zou nieuwe taakthreads moeten starten zodra het uitvoeren van threads onder t
komt, totdat het nummer t
bereikt of er geen niet-uitgevoerde taken zijn.