|
|
(7 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| __NOTOC__ | | __NOTOC__ |
− | <languages />
| |
| <!-- GIDEROSOBJ:Threads --> | | <!-- GIDEROSOBJ:Threads --> |
− | '''<translate>Supported platforms</translate>:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform pc.png]][[File:Platform mac.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/> | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform pc.png]][[File:Platform mac.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/> |
− | '''<translate>Available since</translate>:''' 2018.12<br/> | + | '''Available since:''' 2018.10<br/> |
− | === <translate>Description</translate> ===
| |
− | <translate>The Threads plugin provides the ability to run Lua code in separate threads, taking advantage of multiple cores where available.
| |
− | </translate><br/>
| |
− | === <translate>Example</translate> ===
| |
| | | |
− | '''Simple example of getting result from thread.'''<br/> | + | === Description === |
− | <source lang="lua">require "Threads" | + | The '''Threads''' plugin provides the ability to run Lua code in separate threads, taking advantage of multiple cores where available. |
| + | |
| + | === Example === |
| + | '''Simple example of getting result from a thread''' |
| + | <syntaxhighlight lang="lua"> |
| + | require "Threads" |
| local thread = Thread.new() | | local thread = Thread.new() |
− | thread:setFunction(function() | + | thread:setFunction(function() |
− | local a
| + | local a = 0 |
− | for i = 1, 10000000 do
| + | for i = 1, 10000000 do |
− | a += 1
| + | a += 1 |
− | end
| + | end |
− | return i
| + | return i |
| end) | | end) |
| thread:execute() | | thread:execute() |
| local ok = false | | local ok = false |
| while not ok do | | while not ok do |
− | ok = thread:getResult()
| + | ok = thread:getResult() |
| end | | end |
| print("woot!") | | print("woot!") |
| </source> | | </source> |
| | | |
− | {|-
| + | === Class === |
− | | style="width: 50%; vertical-align:top;"|
| + | [[Thread]]<br/> |
− | | |
− | === <translate>Methods</translate> === | |
− | [[Special:MyLanguage/Thread.new|Thread.new]] ''<translate>Creates a new thread object.</translate>''<br/><!-- GIDEROSMTD:Thread.new() Creates a new thread object. --> | |
− | [[Special:MyLanguage/Thread:setFunction|Thread:setFunction]] ''<translate>Sets Lua function that thread will execute.</translate>''<br/><!-- GIDEROSMTD:Thread:setFunction(func) Sets Lua function that thread will execute. -->
| |
− | [[Special:MyLanguage/Thread:execute|Thread:execute]] ''<translate>Starts/executes our thread</translate>''<br/><!-- GIDEROSMTD:Thread:execute(vararg) Starts/executes our thread -->
| |
− | [[Special:MyLanguage/Thread:resume|Thread:resume]] ''<translate>Resumes a thread that has been yielded.</translate>''<br/><!-- GIDEROSMTD:Thread:resume(...) Resumes a thread that has been yielded. -->
| |
− | [[Special:MyLanguage/Thread.yield|Thread.yield]] ''<translate>Pauses executions of thread (only a valid call inside thread function).</translate>''<br/><!-- GIDEROSMTD:Thread.yield(...) Pauses executions of thread (only a valid call inside thread function). -->
| |
− | [[Special:MyLanguage/Thread:status|Thread:status]] ''<translate>Returns current status of the thread.</translate>''<br/><!-- GIDEROSMTD:Thread:status() Returns current status of the thread. -->
| |
− | [[Special:MyLanguage/Thread:getNumLogicalCores|Thread:getNumLogicalCores]] ''<translate>Returns number of logical cores on host machine.</translate>''<br/><!-- GIDEROSMTD:Thread:getNumLogicalCores() Returns number of logical cores on host machine. -->
| |
− | [[Special:MyLanguage/Thread:requestTermination|Thread:requestTermination]] ''<translate>Sets a flag to terminate thread.</translate>''<br/><!-- GIDEROSMTD:Thread:requestTermination() Sets a flag to terminate thread. -->
| |
− | [[Special:MyLanguage/Thread:sendData|Thread:sendData]] ''<translate>Sends data for retrieval by main thread (only a valid call inside thread function).</translate>''<br/><!-- GIDEROSMTD:Thread:sendData() Sends data for retrieval by main thread (only a valid call inside thread function). -->
| |
− | [[Special:MyLanguage/Thread:fetchData|Thread:fetchData]] ''<translate>Returns any data sent by thread sendData call.</translate>''<br/><!-- GIDEROSMTD:Thread:fetchData() Returns any data sent by thread sendData call. -->
| |
− | [[Special:MyLanguage/Thread:getResults|Thread:getResults]] ''<translate>Get any results from thread.</translate>''<br/><!-- GIDEROSMTD:Thread:getResults(wait_time) Get any results from thread. -->
| |
− | | style="width: 50%; vertical-align:top;"|
| |
− | === <translate>Events</translate> ===
| |
− | | |
− | ''none''<br/>
| |
− | | |
− | === <translate>Constants</translate> ===
| |
− | | |
− | ''none''<br/>
| |
| | | |
− | |}
| + | {{Thread}} |