Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Semaphore
Eredita: RefCounted < Object
Un meccanismo di sincronizzazione utilizzato per controllare l'accesso a una risorsa condivisa dai Thread.
Descrizione
Un semaforo di sincronizzazione che può essere utilizzato per sincronizzare più Thread. Inizializzato a zero alla creazione. Per una versione binaria, vedi Mutex.
Attenzione: I semafori devono essere utilizzati con attenzione per evitare i deadlock.
Attenzione: Per garantire che il sistema operativo sia in grado di eseguire una pulizia corretta (nessun crash, nessun deadlock), devono essere soddisfatte queste condizioni:
Quando il conteggio dei riferimenti di un Semaphore raggiunge zero e viene quindi distrutto, nessun thread deve essere in attesa su di esso.
Quando il conteggio dei riferimenti di un Thread raggiunge zero e viene quindi distrutto, non deve essere in attesa di alcun semaforo.
Tutorial
Metodi
void |
|
try_wait() |
|
void |
wait() |
Descrizioni dei metodi
Abbassa il Semaphore, consentendo l'ingresso di un altro thread, o più se count è specificato.
Come wait(), ma non blocca l'esecuzione, quindi se il valore è zero, fallisce immediatamente e restituisce false. Se è diverso da zero, restituisce true per segnalare il successo.
void wait() 🔗
Attende il Semaphore, se il suo valore è zero, e blocca l'esecuzione finché non diventa diverso da zero.