如何用PV操作解决同步和互?
P原语和V原语的含义,如何用PV操作解决同步和互斥
原语为释放资源 pv操作必须成对出现 通过对信号量的互斥修改 信号量为s,当需要进行互斥的时候s 初值为1(也不是绝对的,但是这个是通常情况) p操作就是 s-1 如果s>= 0 就使用资源 否则就挂起等待 v操作就是s 1 如果s<=0就唤醒一个正在等待的进程 否则什么都不做 通常临界量的代码都是这样的(互斥) s = 1 进程1: p(s) 临界代码 v(s) 进程2: p(s) 临界代码 v(s) 可以看出来,当又一个进程占领资源的时候,另一个进程被挂起,是不可以访问资源的,完成了互斥 而实现同步的代码是 先设s= 0;(同步信号量) s' = 1;(互斥信号量) 进程1: p(s') 临界代码 v(s) 进程2: p(s) 临界代码 v(s') 可以看到,在第一个进程准备完成之前第二个进程无法使用资源,而在第一个进程准备完成之后,第二个进程消耗掉第一个进程的资源之前,第一个进程也不能再生产资源。
答:你把不眠任务放弃就可以了,现在完美改了,接了不眠,不让转详情>>
答:网页缓存 过段时间就会变成E的图标了详情>>