白话理解pv操作,
假如有两个进程 s1和s2,现在有1个资源,当s1占用资源时,进行p操作此刻value为0,现在s2也进行p操作,value为-1,所以要进入等待队列了。当s1完成时进行v操作。此时value为-1+1=0。所以要进行s2的唤醒,s2唤醒后可以进入临界区(注意,此刻不用执行p,因为之前已经进入p了),然后进行v操作,释放资源。value为0+1=1
白话理解pv操作,
假如有两个进程 s1和s2,现在有1个资源,当s1占用资源时,进行p操作此刻value为0,现在s2也进行p操作,value为-1,所以要进入等待队列了。当s1完成时进行v操作。此时value为-1+1=0。所以要进行s2的唤醒,s2唤醒后可以进入临界区(注意,此刻不用执行p,因为之前已经进入p了),然后进行v操作,释放资源。value为0+1=1