love.thread (한국어)

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

멀티 스레딩을 제공하는 모듈입니다.

스레드는 메인 코드로부터 Lua 환경을 분리해 병렬적으로 실행됩니다. 메인 코드의 프레임 레이트를 감소시키는 일 없이 복잡한 연산을 수행할 수 있습니다. 그러나 분리된 환경은 메인 스레드의 변수나 함수에 접근할 수 없고, 스레드 간 통신은 제한되어 있습니다.

모든 LOVE의 객체(또는 유저데이터)는 공유되기 때문에 이들을 다른 스레드에서 사용하려면 객체 내용을 통째로 복사할 필요가 없이 오직 참조만 전달하면 됩니다. 물론 동시에 여러 스레드에서 같은 객체에 접근할 경우 동기화 관련 문제가 발생할 수 있습니다.

스레드는 시작될 때 오직 love.thread 모듈만을 로드합니다. 다른 모든 모듈은 require선언을 통해 명시적으로 불러서 사용해야 합니다.

O.png love.graphicslove.window는 몇몇 제한이 있으니 되도록이면 메인 스레드에서 사용하세요.  


타입

Channel (한국어) 서로 다른 스레드 사이에 데이터를 주고받는 데 사용되는 객체입니다. Added since 0.9.0
Thread (한국어) 스레드를 표현하는 타입입니다. Added since 0.7.0

함수

love.thread.getChannel (한국어) 이름 있는 스레드 채널을 생성하거나 얻어옵니다. Added since 0.9.0
love.thread.newChannel (한국어) 이름 없는 스레드 채널을 생성합니다. Added since 0.9.0
love.thread.newThread (한국어) 루아 파일이나 FileData로부터 새로운 스레드를 생성합니다. Added since 0.7.0


같이 보기

다른 언어