Semaphore

继承: RefCounted < Object

一种同步机制,用于控制Threads对共享资源的访问。

描述

可用于同步多个Thread的同步信号量。创建时初始化为零。有关二进制版本,请参阅Mutex

警告:必须小心使用信号量以避免死锁。

警告:为保证操作系统能够执行适当的清理(没有崩溃,没有死锁),必须满足以下条件:

-当Semaphore的引用计数达到零并因此被销毁时,必须没有线程在等待它。

-当Thread的引用计数达到零并因此被销毁时,它不得等待任何信号量。

方法

void

post(count: int = 1)

bool

try_wait()

void

wait()


方法说明

void post(count: int = 1) 🔗

降低Semaphore,允许一个线程进入,如果指定了count,则允许更多线程进入。


bool try_wait() 🔗

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


void wait() 🔗

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