普贤教程 › 包参考
semaphore 包
信号量(计数限流)
⚠️ 含并发(mutex)—— 必须编译模式运行(px build);
| 项 | 值 |
|---|---|
| 包名 | semaphore |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | semaphore.px |
| 分类 | 并发与通用模式 |
| 文件数 / 行数 | 1 / 87 |
安装与引入
bash
pxpkg init # 首次 pxpkg add semaphore@0.2.0 pxpkg install
px
import semaphore所属分类教程:并发与通用模式
公开接口
| 函数 | 参数 |
|---|---|
sp_new | n |
sp_acquire | sem |
sp_try_acquire | sem |
sp_release | sem |
sp_available | sem |
其余 5 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
sp_new_capacity | n, max_capacity |
sp_try_acquire_timeout | sem, timeout_ms |
sp_stats | sem |
sp_is_full | sem |
sp_usage | sem |
包内说明(源码头注释)
text
============================================================ 普贤生态库:registry/semaphore —— 信号量(计数限流) ------------------------------------------------------------ ⚠️ 含并发(mutex)—— 必须编译模式运行(px build); 解释器 px run 是 Mini 子集,无并发原语(PX-DEF-006)。 var sem = sp_new(2) # 2 个许可 sp_acquire(sem) # 阻塞直到有许可 sp_try_acquire(sem) → Ok(true|false)(非阻塞尝试) sp_release(sem) # 归还许可(多归还 → Err) sp_available(sem) # 当前可用许可数 实现:mutex 保护计数器 + 自旋等待(sleep 1ms);无 native 条件变量。 ============================================================ 创建信号量 → 计数 dict