love.thread (Română)

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

Îți permite să lucrezi cu thread-uri.

Thread-urile sunt medii Lua separate, ce rulează în paralel cu codul principal. În timp ce codul lor rulează separat, ele pot fi folosite pentru a computa operații fără a afecta performanța thread-ului principal. Cu toate acestea, ele sunt medii separate, deci nu pot avea acces la variabilele și funcțiile thread-ului principal, iar opțiunile de comunicare între thread-uri sunt limitate.

Toate obiectele LÖVE (datele utilizatorului) sunt împărțite între thread-uri, deci e nevoie doar să distribui referințele lor printre thread-uri. Ai putea da de probleme de concurență daca manipulezi un obiect în multiple thread-uri în același timp.

Când un [Thread|thread]] e pornit, acesta încarcă doar modulul love.thread. Orice alt modul trebuie să fie încărcat cu require.

O.png Modulele love.graphics și love.window au câteva restricții și pot fi folosite doar în thread-ul principal.  

O.png Dacă nu definești callback-ul love.threaderror sau apelezi Thread:getError nu vei vedea erorile pe care thread-ul tău le va arunca.  

Tipuri

Channel An object which can be used to send and receive data between different threads. Added since 0.9.0
Thread A Thread represents a thread. Added since 0.7.0

Funcții

love.thread.getChannel Creates or retrieves a named thread channel. Added since 0.9.0
love.thread.getThread Look for a thread and get its object. Added since 0.7.0 Removed in 0.9.0
love.thread.getThreads Get all threads. Added since 0.7.0 Removed in 0.9.0
love.thread.newChannel Creates a new unnamed thread channel. Added since 0.9.0
love.thread.newThread Creates a new Thread from a Lua file or FileData object. Added since 0.7.0


Exemple

For 0.9.0: http://love2d.org/forums/viewtopic.php?f=4&t=76670

Uită-te și la

Alte limbi