Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Паралелно програмиране / Обещания

start и await

Ключовата дума start изпълнява блок във фонов режим и незабавно връща Promise:

my $p = start { 2 + 2 };

Работата се извършва в пула от нишки на Raku, докато програмата ви продължава. За да получите резултата, използвайте await, който изчаква обещанието да приключи и ви дава стойността му:

my $p = start { 2 + 2 };
say await $p; # 4

await блокира точно толкова, колкото е нужно на обещанието да завърши, и после връща онова, което блокът е дал — тук 4. Ако работата вече е свършена, когато изчаквате, получавате резултата веднага.

Тази двойка — start за пускане, await за събиране — е ядрото на паралелността с обещания. Можете да пуснете няколко парчета работа, да ги оставите да вървят едновременно и да изчакате резултатите им, когато сте готови — точно върху това надгражда следващата тема.

Практика

Направете 1 тест върху съдържанието на тази тема.

Навигация в курса

Обещания   |   Тест — Обещания


💪 Или преминете направо към упражненията в този раздел.