Я пытаюсь понять код MemcachedClient
из теста YCSB
. Для запроса Get
, который, как я полагаю, реализован в функции read (), я обнаружил следующий код:
GetFuture<Object> future = memcachedClient().asyncGet(key);
Object document = future.get();
Если я правильно понимаю, идея будущего объекта состоит в том, чтобы разрешить асинхронные запросы и перекрытие вместо того, чтобы ждать ответа. Однако я читал, что future.get()
блокируется до тех пор, пока задача не будет завершена.
Итак, в чем тогда будет смысл использования объекта Future и функции asyncGet
, если он будет заблокирован прямо во второй инструкции? Почему бы не использовать блокировку get
с самого начала. Может, мне что-то не хватает, чтобы правильно понять эти две строки?