Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Concurrent programmeren / Threads

Een thread starten

Thread.start neemt een blok aan en draait het op een nieuwe thread, waarbij het een Thread-object teruggeeft dat het lopende werk voorstelt:

my $t = Thread.start({ say 'hello from the thread' });

Het blok draait gelijktijdig met de code die erop volgt. Het hoofdprogramma wacht er niet vanzelf op — het gaat meteen door, en de thread doet zijn werk op de achtergrond.

Eén klein maar belangrijk detail: het argument moet een codeblok zijn. Een leeg paar accolades { } is een lege hash en geen leeg blok, dus een thread heeft altijd een body nodig die werkelijk iets doet:

my $t = Thread.start({ 2 + 2 }); # fine: a block with a body

Omdat het hoofdprogramma en de thread nu tegelijk lopen, kun je niet vertrouwen op de volgorde waarin hun uitvoer verschijnt — tenzij je expliciet op de thread wacht, het onderwerp van het volgende onderdeel.

Praktijk

Maak de 1 quiz over de inhoud van dit onderwerp.

Cursusnavigatie

Threads   |   Quiz — Threads


💪 Of ga direct naar de oefeningen in deze sectie.