Одновременное выполнение нескольких Future
До этого времени, мы в основном выполняли футуры используя .await
, который блокирует текущую задачу до тех пор, пока не завершится отдельная Future
. Однако, настоящие асинхронные приложения чаще всего должны выполнять несколько различных операций одновременно.
В этой главе мы рассмотрим несколько вариантов одновременного выполнения нескольких асинхронных операций:
join!
: ждёт завершения всех футурselect!
: ждёт завершения одной из футур- Spawning: создаёт высокоуровневые задачи, которые запускают содержащиеся в них футуры до их завершения
FuturesUnordered
: группа Future, которые отдают результат каждой SubFuture