Где и как хранятся результаты для AsyncResult и Futures? - PullRequest
1 голос
/ 31 декабря 2011

В моем понимании:

Пользователь опрашивает будущий объект, пока не станет доступен результат.С другой стороны, задание выполняется синхронно, и результат должен храниться где-то до следующего опроса.Где хранится результат?

Как это происходит для удаленных вызовов, т. Е. Асинхронных операций SOAP?Как долго результаты хранятся на сервере?

1 Ответ

1 голос
/ 31 декабря 2011

Результат сохраняется в самом объекте Future.Он не хранится на стороне сервера.

Поток 1 отправляет Callable Исполнителю.Этот исполнитель создает Runnable, который реализует Future и который оборачивает вызываемый объект и его будущий результат.Он возвращает это будущее.

Поток 2 от исполнителя выполняет исполняемое будущее.При запуске будущее исполняет свой вызываемый вызов и сохраняет результат вызова в своем поле результата.

Поток 1 запрашивает результат из будущего, а будущее возвращает результат, сохраненный в его поле результатов.

Посмотрите на исходный код и документацию по java.util.concurrent.FutureTask,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...