Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Concurrent programmeren / Threads / Exercises / Twee threads
Oplossing: Twee threads
Hier is een mogelijke oplossing voor de taak.
Code
my ($x, $y);
my $a = Thread.start({ $x = 10 * 10 });
my $b = Thread.start({ $y = 20 * 20 });
$a.finish;
$b.finish;
say $x + $y;🦋 Je kunt de broncode vinden in het bestand two-threads.raku.
Uitvoer
500Opmerkingen
De twee threads lopen gelijktijdig en schrijven elk hun resultaat in een eigen gedeelde variabele.
$xen$ylezen gebeurt pas na beide.finish-aanroepen, dus zijn de resultaten gegarandeerd klaar:100 + 400is500. Samenvoegen vóór het lezen is wat de waarde betrouwbaar maakt.
Cursusnavigatie
← Twee threads | Promises →