Looking for lua Keywords? Try Ask4Keywords

LuaCoroutinen


Syntax

  • coroutine.create (function) gibt eine Coroutine (type (coroutine) == 'thread') zurück, die die Funktion enthält.

  • coroutine.resume (co, ...) fortsetzen oder Coroutine starten. Alle weiteren Argumente, die zum Fortsetzen gegeben werden, werden von der Coroutine.yield () zurückgegeben, die zuvor die Coroutine angehalten hat. Wenn die Coroutine nicht gestartet wurde, werden die zusätzlichen Argumente zu den Argumenten der Funktion.

  • coroutine.yield (...) liefert die aktuell laufende Coroutine. Die Ausführung wird nach dem Aufruf von coroutine.resume (), mit dem diese Coroutine gestartet wurde, wiederhergestellt. Alle Argumente, die gegeben werden, werden von der entsprechenden coroutine.resume (), die die Coroutine gestartet hat, zurückgegeben.

  • coroutine.status (co) gibt den Status der Coroutine zurück. Dies kann sein:

    • "dead": Die Funktion der Coroutine hat ihr Ende erreicht und die Coroutine kann nicht mehr fortgesetzt werden
    • "running": Die Coroutine wurde fortgesetzt und läuft
    • "normal": Die Coroutine hat eine weitere Coroutine wieder aufgenommen
    • "suspendiert": Die Coroutine hat nachgegeben und wartet darauf, wieder aufgenommen zu werden
  • coroutine.wrap (function) gibt eine Funktion zurück, die beim Aufruf der Coroutine, die von coroutine.create (function) erstellt worden wäre, fortsetzt.

Bemerkungen

Das Coroutine-System wurde in Lua implementiert, um das Multithreading in anderen Sprachen zu emulieren. Es wechselt mit extrem hoher Geschwindigkeit zwischen verschiedenen Funktionen, sodass der Benutzer glaubt, dass sie gleichzeitig ausgeführt werden.

Coroutinen Verwandte Beispiele