跳转至

信号量

来源:操作系统 / note/进程管理/进程通信/信号量.md

上级:进程通信

信号量是用于解决同步互斥问题的整数变量,只能通过原子操作 P 和 V 修改。

P/V 操作

  • P 操作:申请资源。若信号量大于 0,则减 1 后继续;否则阻塞等待。
  • V 操作:释放资源。信号量加 1,并可能唤醒等待进程。

二元信号量

二元信号量只取 0 或 1,常用于实现互斥

计数信号量

计数信号量表示某类资源的可用数量,适合管理多个同类资源。

使用注意

  • P/V 顺序错误可能导致死锁
  • 遗漏 V 操作可能导致其他进程永久等待。
  • 过度使用会让程序可读性下降。

相关