Thread

Inherits: Reference < Object

A unit of execution in a process.

Description

A unit of execution in a process. Can run methods on Objects simultaneously. The use of synchronization via Mutex or Semaphore is advised if working with shared objects.

Note: Breakpoints won't break on code if it's running in a thread. This is a current limitation of the GDScript debugger.

Methods

String get_id ( ) const
bool is_active ( ) const
Error start ( Object instance, String method, Variant userdata=null, Priority priority=1 )
Variant wait_to_finish ( )

Enumerations

enum Priority:

  • PRIORITY_LOW = 0 --- A thread running with lower priority than normally.
  • PRIORITY_NORMAL = 1 --- A thread with a standard priority.
  • PRIORITY_HIGH = 2 --- A thread running with higher priority than normally.

Method Descriptions

Returns the current Thread's ID, uniquely identifying it among all threads. If the Thread is not running this returns an empty string.


  • bool is_active ( ) const

Returns true if this Thread is currently active. An active Thread cannot start work on a new method but can be joined with wait_to_finish.


Starts a new Thread that runs method on object instance with userdata passed as an argument. Even if no userdata is passed, method must accept one argument and it will be null. The priority of the Thread can be changed by passing a value from the Priority enum.

Returns @GlobalScope.OK on success, or @GlobalScope.ERR_CANT_CREATE on failure.


Joins the Thread and waits for it to finish. Returns what the method called returned.