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¶
继承: RefCounted < Object
同步机制,用于控制对 Thread 之间共享资源的访问。
描述¶
同步机制,用于控制对 Thread 之间共享资源的访问。创建时初始化为零。二元版本见 Mutex。
警告:信号量必须谨慎使用,防止死锁。
警告:为了确保操作系统能够执行正确的清理(避免崩溃和思索),必须满足以下条件:
Semaphore 的引用计数变为零,导致销毁时,没有线程在等待该信号量。
Thread 的引用计数变为零,导致销毁时,没有在等待任何信号量。
教程¶
方法¶
void |
post() |
try_wait() |
|
void |
wait() |
方法说明¶
void post() 🔗
降低 Semaphore,额外允许一个线程进入。
与 wait 类似,但不会阻塞,所以如果值为零,则会立即失败并返回 false
。如果非零,则返回 true
以报告成功。
void wait() 🔗
等待该 Semaphore,如果它的值为零,则阻塞到变为非零为止。