Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione concorrente / Promise
start e await
La parola chiave start esegue un blocco in secondo piano
e restituisce subito una Promise:
my $p = start { 2 + 2 };Il lavoro avviene sul pool di thread di Raku mentre il tuo programma
prosegue. Per ottenere il risultato usa await, che aspetta
che la promise finisca e ti dà il suo valore:
my $p = start { 2 + 2 };
say await $p; # 4await blocca giusto il tempo che la promise si completi,
poi restituisce ciò che il blocco ha prodotto — qui 4. Se
il lavoro è già finito quando la attendi, ottieni il risultato
all’istante.
Questa coppia — start per lanciare, await
per raccogliere — è il cuore della concorrenza basata sulle promise.
Puoi lanciare parecchi pezzi di lavoro, lasciarli girare nello stesso
momento e attenderne i risultati quando sei pronto, che è esattamente
ciò su cui costruisce l’argomento successivo.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Promise | Quiz — Promise →
💪 Oppure vai direttamente agli esercizi di questa
sezione.