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

500

Comentarios

  1. Los dos hilos corren de forma concurrente, cada uno escribiendo su resultado en su propia variable compartida.

  2. La lectura de $x y $y ocurre solo después de las dos llamadas a .finish, así que los resultados tienen garantizado estar listos: 100 + 400 es 500. Unir antes de leer es lo que hace fiable el valor.

Dos hilos   |   Promesas