{}const=>[]async()letfn</>var
DesarrolloLua

Corrutinas en Lua: cómo escribir código paso a paso sin multihilo

Analizamos las corrutinas en Lua: una forma fácil de pausar y reanudar funciones. Ideal para juegos, tareas de red y código asíncrono.

К

Kodik

Autor

2 min de lectura

Cuando se trata de paralelismo, la mayoría de los programadores recuerdan inmediatamente multihilo o asincronía. Pero Lua tiene su propia herramienta única: corrutinas. Le permiten escribir código como si tuviera varios hilos, mientras permanece dentro de un solo hilo de ejecución.

Las corrutinas son «flujos» ligeros, que se pueden pausar y reanudar manualmente.

A diferencia de las funciones convencionales que se ejecutan de principio a fin, una corutina puede:

  • detenerse en medio de la ejecución,

  • devolver el control al código de llamada,

  • y luego continuar el trabajo desde el mismo lugar.

Es como una pausa en el juego 🎮: guardaste el estado y luego continuaste con calma desde el mismo momento.

Ejemplo de corutina en Lua

function worker()
    for i = 1, 3 do
        print("Step " .. i)
        coroutine.yield() -- приостанавливаемся
    end
end

co = coroutine.create(worker)

coroutine.resume(co) --> Шаг 1
coroutine.resume(co) --> Шаг 2
coroutine.resume(co) --> Шаг 3

Análisis:

  • coroutine.create — crea una corutina.

  • coroutine.resume — la inicia o la continúa.

  • coroutine.yield — pausa la ejecución.

🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

¿En qué se diferencian las corrutinas de los hilos?

Hilos (Threads)

Corrutinas (Coroutines)

Gestionado por el sistema operativo

Gestionado por el propio Lua

Se pueden realizar en paralelo

Se ejecutan solo uno tras otro

Difícil de depurar

Sencillas y predecibles

Requieren protección de datos (mutex, lock)

Son seguras, ya que no hay paralelismo real

¿Dónde son útiles las cortinas?

  • Juegos y animaciones — secuencias de comandos paso a paso sin if anidados y temporizadores.

  • Tareas asíncronas — consultas de red, gestión de eventos.

  • Escenarios de secuencias de comandos — una descripción simple del comportamiento de los NPC o bots.

Un pequeño ejemplo para el juego

function npc()
    print("NPC: I'm coming...")
    coroutine.yield()
    print("NPC: I stopped...")
    coroutine.yield()
    print("NPC: I'm coming again!")
end

co = coroutine.create(npc)
coroutine.resume(co) -- NPC: Я иду...
coroutine.resume(co) -- NPC: Я остановился...
coroutine.resume(co) -- NPC: Я снова иду!

En lugar de una lógica compleja, un guion simple, como si escribieras un miniteatro para objetos.

Total

Las corrutinas en Lua son no es multiproceso, sino una forma fácil de simular la ejecución paralela. Son ideales para juegos, aplicaciones de red y escenarios donde el control del orden de las acciones es importante.

Si estás aprendiendo Lua, asegúrate de jugar con las corrutinas. Esto puede simplificar enormemente su arquitectura. código cursos interesantes con tareas en Lua.

Y también tenemos un canal de telegram, donde discutimos ideas geniales, compartimos experiencias y analizamos juntos las tareas: aprender no solo es útil, sino también divertido.

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta