#java #java.util.concurrent
#Ява #java.util.параллельный
Вопрос:
Мне нужно реализовать задачу, которая будет выполняться асинхронно максимальное количество раз, но остановится раньше, если будет выполнено какое-то условие. В качестве простого примера можно привести задачу, генерирующую случайное число от 1 до 100, и она выполняется 4 раза с некоторым интервалом и возвращает последнее сгенерированное число, но если одно из сгенерированных чисел gt; 50, то она должна остановить итерации и вернуть это число. Я думал об ScheduledExecutorService
scheduleAtFixedRate
этом, но не знал, как правильно остановить это, когда условие будет выполнено.
Комментарии:
1. Важно ли, чтобы каждая итерация выполнялась асинхронно? Если да, пожалуйста, отредактируйте вопрос, чтобы объяснить, почему.
2. Позвони
Future.cancel()
илиExecutorService.shutdown()
.3. @TimMoore нет, каждая итерация не должна выполняться асинхронно, просто все итерации в отдельном потоке