Looking for lua Answers? Try Ask4KnowledgeBase
Looking for lua Keywords? Try Ask4Keywords

LuaCoroutines


Sintaxis

  • coroutine.create (function) devuelve una coroutine (type (coroutine) == 'thread') que contiene la función.

  • coroutine.resume (co, ...) reanudar, o iniciar la coroutine. Cualquier argumento adicional dado para reanudar se devuelve desde coroutine.yield () que previamente pausó la coroutine. Si no se ha iniciado la rutina, los argumentos adicionales se convierten en los argumentos de la función.

  • coroutine.yield (...) produce la coroutine actualmente en ejecución. La ejecución se recupera después de la llamada a coroutine.resume () que inició esa coroutine. Cualquier argumento dado para ceder se devuelve del coroutine.resume () correspondiente que inició la coroutine.

  • coroutine.status (co) devuelve el estado de la coroutine, que puede ser:

    • "muerto": la función en la coroutine ha llegado a su fin y la coroutine ya no se puede reanudar.
    • "running": el coroutine se ha reanudado y se está ejecutando
    • "normal": la coroutine ha reanudado otra coroutine.
    • "suspendido": la corutina ha cedido, y está esperando para ser reanudada
  • coroutine.wrap (función) devuelve una función que, cuando se le llama, reanuda la coroutina que habría sido creada por coroutine.create (función).

Observaciones

El sistema coroutine ha sido implementado en lua para emular multiproceso existente en otros idiomas. Funciona cambiando a una velocidad extremadamente alta entre diferentes funciones para que el usuario humano piense que se ejecutan al mismo tiempo.

Coroutines Ejemplos relacionados