信号量就像一个有固定钥匙数的箱子。使用信号量的进程必须首先从箱子中获取密钥,然后才能继续执行。其他进程必须等到箱子中有可用的密钥才能使用。从某种意义上说,它们最适合用于互斥、对共享资源的访问控制和基本同步。
semaphore [identifier_name];
注意,信号量(semaphore)是一个内置类,因此它应该像任何其他类对象一样使用。它有一些方法,我们可以使用这些方法为该信号量对象分配钥匙的数量,获取并将键放入箱子。
| 名字 | 描述 |
|---|---|
| function new (int keyCount = 0); | 指定最初分配给信号量桶的钥匙数 |
| function void put (int keyCount = 1); | 指定返回到信号量的钥匙数 |
| task get (int keyCount = 1); | 指定要从信号量获取的钥匙数 |
| function int try |