1.读者与写者(写者优先方式)
2.黑白棋问题
(1)执黑子一方先下信号量:b=1,w=0
黑:
while(没结束){
wait(b);
下一黑棋;
signal(w);
}
白:
while(没结束){
wait(w);
下一白棋;
signal(b);
}
(2)先抢到棋盘者先下,然后轮流下子(Semaphore m=1;turn=0;)
黑
while(没结束){�p(m);�if (turn<>2)
下一黑子;
turn=2;
v(m)
}
白:
while(没结束){
p(m);
if (turn<>1)
下一白子;
turn=1;
v(m)
}
网友评论