Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación concurrente / Hilos / Exercises / Dos hilos
Solución: Dos hilos
Aquí tienes una posible solución para la tarea.
Código
my ($x, $y);
my $a = Thread.start({ $x = 10 * 10 });
my $b = Thread.start({ $y = 20 * 20 });
$a.finish;
$b.finish;
say $x + $y;🦋 Puedes encontrar el código fuente en el archivo two-threads.raku.
Salida
500Comentarios
Los dos hilos corren de forma concurrente, cada uno escribiendo su resultado en su propia variable compartida.
La lectura de
$xy$yocurre solo después de las dos llamadas a.finish, así que los resultados tienen garantizado estar listos:100 + 400es500. Unir antes de leer es lo que hace fiable el valor.