Thread

From GiderosMobile
Revision as of 15:31, 13 July 2023 by Hgy29 (talk | contribs) (Text replacement - "<source" to "<syntaxhighlight")

Supported platforms: Platform android.pngPlatform ios.pngPlatform pc.pngPlatform mac.pngPlatform winrt.pngPlatform win32.png
Available since: 2018.10

Description

The Threads plugin provides the ability to run Lua code in separate threads, taking advantage of multiple cores where available.

To add the Threads plugin to your application you call: <syntaxhighlight lang="lua"> require "Threads" </source>

Example

Simple example of getting result from a thread <syntaxhighlight lang="lua"> require "Threads" local thread = Thread.new() thread:setFunction(function() local a = 0 for i = 1, 10000000 do a += 1 end return i end) thread:execute() local ok = false while not ok do ok = thread:getResult() end print("end") </source>

Methods

Thread.new creates a new thread object

Thread:execute starts/executes the thread
Thread:fetchData returns any data sent by thread sendData call
Thread:getNumLogicalCores returns number of logical cores on host machine
Thread:getResults gets any results from thread
Thread:requestTermination sets a flag to terminate thread
Thread:resume resumes a thread that has been yielded
Thread.sendData sends data for retrieval by main thread (only valid inside thread function)
Thread:setFunction sets Lua function that thread will execute
Thread:status returns current status of the thread
Thread.yield pauses executions of thread (only valid inside thread function)

Events

Constants