love.thread (Deutsch)

Available since LÖVE 0.7.0
This module is not supported in earlier versions.

Ermöglicht das Arbeiten mit Threads.

Threads sind separate Lua Umgebungen, die parallel zum Hauptcode arbeiten. Durch diese Eigenschaft können Threads benutzt werden um komplexe Operationen zu berechnen ohne die Framerate negativ zu beeinflussen. Allerdings können Threads, da sie in eigenständigen Umgebungen ausgeführt werden, nicht auf die Variablen und Funtionen des Hauptprogramms zugreifen und die Kommunikation zwischen Threads ist begrenzt.

Alle LÖVE Objekte (userdata) werden zwischen den Threads aufgeteilt, sodass nur eine Referenz an die Threads geschickt werden muss. Es können Probleme auftreten, wenn dasselbe Objekt glechzeitig in mehreren Threads manipuliert wird.

Wenn ein Thread startet, wird nur das lova.thread Modul geladen. Alle anderen benötigten Module müssen mittels require geladen werden.

O.png Das love.graphics Modul unterliegt einigen Einschränkungen und sollte deshalb nur im Hauptprogramm benutzt werden.  


O.png Sofern keine love.threaderror Rückruffunktion definiert wurde und nicht Thread:Error genutzt wird, wird LÖVE keine Meldungen für Fehler ausgeben, welche bei der Ausführung eines Threads auftreten.  


Typen

Channel (Deutsch) Ein Objekt welches dazu genutzt werden kann, Daten zwischen verschiedenen Threads auszutauschen. Added since 0.9.0
Thread (Deutsch) Ein Thread ist ein Code-Baustein, der parallel zu anderen Threads ausgeführt werden kann. Added since 0.7.0

Funktionen

love.thread.newChannel (Deutsch) Erstellt einen neuen unbenannten Channel. Added since 0.9.0
love.thread.newThread (Deutsch) Erstellt einen neuen Thread aus einer Lua-Datei oder einem FileData-Objekt. Added since 0.7.0


Beispiele

Für 0.9.0: http://love2d.org/forums/viewtopic.php?f=4&t=76670 (engl.)

Siehe auch

Andere Sprachen