Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Конкурентное программирование / Потоки / Exercises / Два потока
Решение: Два потока
Вот один из возможных вариантов решения задачи.
Код
my ($x, $y);
my $a = Thread.start({ $x = 10 * 10 });
my $b = Thread.start({ $y = 20 * 20 });
$a.finish;
$b.finish;
say $x + $y;🦋 Исходный код можно найти в файле two-threads.raku.
Вывод
500Комментарии
Два потока выполняются одновременно, каждый записывает свой результат в собственную общую переменную.
Чтение
$xи$yпроисходит только после обоих вызовов.finish, поэтому результаты гарантированно готовы:100 + 400равно500. Именно присоединение перед чтением и делает значение надёжным.
Навигация по курсу
← Два потока | Промисы →