Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Конкурентное программирование / Промисы
start и await
Ключевое слово start выполняет блок в фоне и немедленно
возвращает Promise:
my $p = start { 2 + 2 };Работа идёт в пуле потоков Raku, пока ваша программа продолжает своё
дело. Чтобы получить результат, используйте await, который
дожидается завершения промиса и отдаёт его значение:
my $p = start { 2 + 2 };
say await $p; # 4await блокирует выполнение ровно настолько, чтобы промис
успел завершиться, а затем возвращает то, что выдал блок, — здесь
4. Если работа к моменту ожидания уже сделана, результат
приходит сразу.
Эта пара — start для запуска, await для
сбора — и есть основа конкурентности на промисах. Можно запустить
несколько кусков работы, дать им идти одновременно и дождаться их
результатов, когда будете готовы; именно на этом и строится следующая
тема.
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Промисы | Тест — Промисы →
💪 Или перейдите сразу к упражнениям этого
раздела.