文章
77
粉丝
9
获赞
2
访问
7.9k
semaphore empty=N;//用于表示当前还可以放入的正整数个数
semaphore odd=0; //用于表示当前缓冲区可取的正奇数个数
semaphore even=0;//用于表示当前缓冲区可取的正偶数个数
semaphore mutex=1;//用于互斥访问缓冲区
P1() {
int data=produce();
P(empty);
P(mutex);
put(data);
V(mutex);
if(put%2==0) V(even);
else V(odd);
}
P2() {
P(odd);
P(mutex);
getodd();
V(mutex);
V(empty);
countodd();
}
P3() {
P(even);
P(mutex);
geteven();
V(mutex);
V(empty);
counteven();
}
登录后发布评论
暂无评论,来抢沙发