Асинхронная задача с условием

#java #java.util.concurrent

#Ява #java.util.параллельный

Вопрос:

Мне нужно реализовать задачу, которая будет выполняться асинхронно максимальное количество раз, но остановится раньше, если будет выполнено какое-то условие. В качестве простого примера можно привести задачу, генерирующую случайное число от 1 до 100, и она выполняется 4 раза с некоторым интервалом и возвращает последнее сгенерированное число, но если одно из сгенерированных чисел gt; 50, то она должна остановить итерации и вернуть это число. Я думал об ScheduledExecutorService scheduleAtFixedRate этом, но не знал, как правильно остановить это, когда условие будет выполнено.

Комментарии:

1. Важно ли, чтобы каждая итерация выполнялась асинхронно? Если да, пожалуйста, отредактируйте вопрос, чтобы объяснить, почему.

2. Позвони Future.cancel() или ExecutorService.shutdown() .

3. @TimMoore нет, каждая итерация не должна выполняться асинхронно, просто все итерации в отдельном потоке