Одновременное выполнение нескольких Future

До этого времени, мы в основном выполняли футуры используя .await, который блокирует текущую задачу до тех пор, пока не завершится отдельная Future. Однако, настоящие асинхронные приложения чаще всего должны выполнять несколько различных операций одновременно.

В этой главе мы рассмотрим несколько вариантов одновременного выполнения нескольких асинхронных операций:

  • join!: ждёт завершения всех футур
  • select!: ждёт завершения одной из футур
  • Spawning: создаёт высокоуровневые задачи, которые запускают содержащиеся в них футуры до их завершения
  • FuturesUnordered: группа Future, которые отдают результат каждой SubFuture