Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Паралелно програмиране / Нишки
Стартиране на нишка
Thread.start приема блок и го изпълнява в нова нишка,
като връща обект Thread, представящ течащата работа:
my $t = Thread.start({ say 'hello from the thread' });Блокът се изпълнява паралелно с кода, който следва. Основната програма не го изчаква автоматично — тя продължава веднага, а нишката си върши работата във фонов режим.
Една дребна, но важна подробност: аргументът трябва да е блок код.
Празната двойка фигурни скоби { } е празен
хеш, а не празен блок, така че на нишката винаги ѝ
трябва тяло, което наистина прави нещо:
my $t = Thread.start({ 2 + 2 }); # добре: блок с тялоПонеже основната програма и нишката вече вървят едновременно, не можете да разчитате на реда, в който се появява изходът им — освен ако изрично не изчакате нишката да приключи, което е темата на следващата тема.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← Нишки | Тест — Нишки →
💪 Или преминете направо към упражненията в този
раздел.