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