Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Nebenläufige Programmierung / Threads
Einen Thread starten
Thread.start nimmt einen Block auf und führt ihn auf
einem neuen Thread aus, wobei es ein Thread-Objekt liefert,
das die laufende Arbeit darstellt:
my $t = Thread.start({ say 'hello from the thread' });Der Block läuft nebenläufig zum nachfolgenden Code. Das Hauptprogramm wartet nicht von selbst auf ihn — es läuft sofort weiter, und der Thread verrichtet seine Arbeit im Hintergrund.
Eine kleine, aber wichtige Einzelheit: Das Argument muss ein
Codeblock sein. Ein leeres Paar geschweifter Klammern { }
ist eine leere Hash und kein leerer Block, ein Thread
braucht also stets einen Rumpf, der tatsächlich etwas tut:
my $t = Thread.start({ 2 + 2 }); # fine: a block with a bodyDa Hauptprogramm und Thread nun zugleich laufen, können Sie sich nicht auf die Reihenfolge ihrer Ausgaben verlassen — es sei denn, Sie warten ausdrücklich auf das Ende des Threads, das Thema des nächsten Abschnitts.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Threads | Quiz — Threads →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.