【转】PV操作,看完了进程同步与互斥机制,我终于彻底理解了 PV 操作
参考:https://cloud.tencent.com/developer/article/1803377
使用信号量和 PV 操作实现进程的同步也非常方便,三步走:
- 定义一个同步信号量,并初始化为当前可用资源的数量
- 在优先级较「高」的操作的「后」面执行 V 操作,释放资源
- 在优先级较「低」的操作的「前」面执行 P 操作,申请占用资源
举个例子,以下两个进程 P1、P2 并发执行,由于存在异步性,因此二者交替推进的次序是不确定的。假设 P2 的 “代码4” 要基于 P1 的 “代码1” 和 “代码2” 的运行结果才能执行,那么我们就必须保证 “代码4” 一定是在 “代码2” 之后才会执行。