信号量¶
来源:
操作系统 / note/进程管理/进程通信/信号量.md
上级:进程通信
信号量是用于解决同步和互斥问题的整数变量,只能通过原子操作 P 和 V 修改。
P/V 操作¶
- P 操作:申请资源。若信号量大于 0,则减 1 后继续;否则阻塞等待。
- V 操作:释放资源。信号量加 1,并可能唤醒等待进程。
二元信号量¶
二元信号量只取 0 或 1,常用于实现互斥。
计数信号量¶
计数信号量表示某类资源的可用数量,适合管理多个同类资源。
使用注意¶
- P/V 顺序错误可能导致死锁。
- 遗漏 V 操作可能导致其他进程永久等待。
- 过度使用会让程序可读性下降。