Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Paralēlā programmēšana / Solījumi

start un await

Atslēgvārds start izpilda bloku fonā un tūlīt atgriež Promise:

my $p = start { 2 + 2 };

Darbs notiek Raku pavedienu baseinā, kamēr jūsu programma turpina savu gaitu. Lai iegūtu rezultātu, izmantojiet await, kas nogaida solījuma beigas un pasniedz jums tā vērtību:

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

await bloķē tieši tik ilgi, cik vajag solījuma pabeigšanai, un tad atgriež to, ko bloks radījis, — šeit 4. Ja darbs līdz gaidīšanas brīdim jau ir padarīts, rezultātu saņemsiet uzreiz.

Šis pāris — start palaišanai, await savākšanai — ir uz solījumiem balstītas konkurences kodols. Jūs varat palaist vairākus darba gabalus, ļaut tiem izpildīties vienlaikus un sagaidīt to rezultātus tad, kad esat gatavi; tieši uz to būvē nākamais temats.

Prakse

Jūs gaida 1 viktorīna par šī temata saturu.

Kursa navigācija

Solījumi   |   Viktorīna — Solījumi


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.