Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación concurrente / Hilos
Iniciar un hilo
Thread.start recibe un bloque y lo ejecuta en un hilo
nuevo, devolviendo un objeto Thread que representa el
trabajo en marcha:
my $t = Thread.start({ say 'hello from the thread' });El bloque se ejecuta de forma concurrente con el código que sigue. El programa principal no lo espera automáticamente: continúa de inmediato, y el hilo hace su trabajo en segundo plano.
Un detalle pequeño pero importante: el argumento debe ser un bloque
de código. Un par de llaves vacío { } es un
hash vacío, no un bloque vacío, así que un hilo siempre
necesita un cuerpo que haga realmente algo:
my $t = Thread.start({ 2 + 2 }); # fine: a block with a bodyComo el programa principal y el hilo corren ahora al mismo tiempo, no puedes fiarte del orden en que aparece su salida, a menos que esperes explícitamente a que el hilo termine, que es el tema del apartado siguiente.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Hilos | Quiz — Hilos →
💪 O ve directamente a los ejercicios de esta
sección.