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 ( )

bool

try_wait ( )

void

wait ( )


方法说明

void post ( )

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


bool try_wait ( )

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


void wait ( )

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