Как вызвать два метода для кнопки '
Java Futures ( java.util.concurrent.Future
) выглядит следующим образом:
class Job extends Callable<T> {
public T call() {
// ...
}
}
List<Job> jobs = // ...
List<Future<T>> futures = ExecutorService.invokeAll(jobs);
for (Future<T> future : futures) {
T t = future.get();
// Do something with t ...
}
Проблема с этой моделью заключается в том, что если задание 0 занимает много времени для завершения, но задания 1, 2, и 3 уже завершены, цикл for
будет ждать получения возвращаемого значения из задания 0.
Есть ли какая-либо модель, которая позволяет мне получать каждый результат Future
по мере его появления доступен без вызова Future.isDone ()
и ожидания занятости (или вызова Thread.sleep ()
), если ни один из них еще не готов?