Рассмотрим следующий пример, взятый из N3650:
int cnt = 0;
do {
cnt = await streamR.read(512, buf);
if (cnt == 0)
break;
cnt = await streamW.write(cnt, buf);
} while (cnt > 0);
Я, вероятно, что-то пропустил, но если бы я хорошо понял async
и await
, то в чем смысл показать полезность двух конструкций с приведенным выше примером, когда эффекты эквивалентны записи:
int cnt = 0;
do {
cnt = streamR.read(512, buf).get();
if (cnt == 0)
break;
cnt = streamW.write(cnt, buf).get();
} while (cnt > 0);
где оба вызова read().get()
и write().get()
синхронны?