love.thread (日本語)
LÖVE 0.7.0 から使用可能 |
このmoduleは以前のバージョンでは非対応です。 |
スレッドを使用して作業を行えるようにします。
スレッドはメインコードとは個別に独立した Lua 環境であり、メインコードと並列で実行されます。スレッドのコードは別々に実行されるため、メイン・スレッドのフレーム・レートに悪影響を与えることなく複雑な計算作業を処理するために使用することができますが、スレッドは個々に独立した環境である関係でメイン・スレッドに存在する変数および関数にはアクセスできませんので、スレッド間の通信は制限されています。
全ての LÖVE オブジェクト (userdata) はスレッドを経由して参照物を送信する場合に限り、スレッド間で共有されます。複数のスレッドで同時にオブジェクトを操作する場合に起きる並列性の問題は発生してもかまいません。
Thread を開始したときは、 love.thread モジュールのみ読み込まれます。 その他のモジュールは require により別々に読み込む必要があります。
love.graphics および love.window モジュールには一部制限があるためメインスレッドのみで使用できます。 |
love.threaderror コールバックを定義するか Thread:getError を呼び出すまでスレッドのコードが投げてくるエラーを参照できません。 |
型
Channel (日本語) | このオブジェクトは別のスレッド間でデータの送信および受信に使用できます。 | 0.9.0 | |
Thread (日本語) | Thread はスレッドを提供します。 | 0.7.0 |
関数
love.thread.getChannel (日本語) | 名前ありスレッドのチャンネルを作成または検索します。 | 0.9.0 | |
love.thread.getThread (日本語) | スレッドを検索してオブジェクトを取得します。 | 0.7.0 | 0.9.0 |
love.thread.getThreads (日本語) | 全てのスレッドを取得します。 | 0.7.0 | 0.9.0 |
love.thread.newChannel (日本語) | 名前なしスレッドのチャンネルを新規作成します。 | 0.9.0 | |
love.thread.newThread (日本語) | ファイル名、文字列または Lua コードのある FileData オブジェクトからスレッドを新規作成します。 | 0.7.0 |
用例
LÖVE 0.9.0 用: http://love2d.org/forums/viewtopic.php?f=4&t=76670
関連
そのほかの言語
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info