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