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.

Semaphore

继承: RefCounted < Object

同步机制,用于控制对 Thread 之间共享资源的访问。

描述

同步机制,用于控制对 Thread 之间共享资源的访问。创建时初始化为零。二元版本见 Mutex

警告:信号量必须谨慎使用,防止死锁。

警告:为了确保操作系统能够执行正确的清理(避免崩溃和思索),必须满足以下条件:

  • Semaphore 的引用计数变为零,导致销毁时,没有线程在等待该信号量。

  • Thread 的引用计数变为零,导致销毁时,没有在等待任何信号量。

教程

方法

void

post()

bool

try_wait()

void

wait()


方法说明

void post() 🔗

降低 Semaphore,额外允许一个线程进入。


bool try_wait() 🔗

wait 类似,但不会阻塞,所以如果值为零,则会立即失败并返回 false。如果非零,则返回 true 以报告成功。


void wait() 🔗

等待该 Semaphore,如果它的值为零,则阻塞到变为非零为止。