Thread¶
Una unidad de ejecución en un proceso.
Descripción¶
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.
Tutoriales¶
Métodos¶
get_id ( ) const |
|
is_active ( ) const |
|
is_alive ( ) const |
|
start ( Object instance, String method, Variant userdata=null, Priority priority=1 ) |
|
wait_to_finish ( ) |
Enumeraciones¶
enum Priority:
PRIORITY_LOW = 0 --- Un hilo que corre con menor prioridad de lo normal.
PRIORITY_NORMAL = 1 --- Un hilo con una prioridad estándar.
PRIORITY_HIGH = 2 --- Un hilo que corre con mayor prioridad de lo normal.
Descripciones de Métodos¶
String get_id ( ) const
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
has been started. Once started, this will return true
until it is joined using wait_to_finish. For checking if a Thread
is still executing its task, use is_alive.
bool is_alive ( ) const
Returns true
if this Thread
is currently running. This is useful for determining if wait_to_finish can be called without blocking the calling thread.
To check if a Thread
is joinable, use is_active.
Inicia un nuevo Thread
que ejecuta method
en el objeto instance
con userdata
pasado como argumento. Aunque no se pasen userdata, method
debe aceptar un argumento y será nulo. La priority
del Thread
puede cambiarse pasando un valor del enum Priority.
Devuelve @GlobalScope.OK en el éxito, o @GlobalScope.ERR_CANT_CREATE en el fracaso.
Variant wait_to_finish ( )
Joins the Thread
and waits for it to finish. Returns the output of the method passed to start.
Should either be used when you want to retrieve the value returned from the method called by the Thread
or before freeing the instance that contains the Thread
.
To determine if this can be called without blocking the calling thread, check if is_alive is false
.
Note: After the Thread
finishes joining it will be disposed. If you want to use it again you will have to create a new instance of it.