阅读背景:

PV操作经典问题

来源:互联网 

一、5位哲学家就餐问题

semaphore fork[5];
for (int i=0;i<5;i++)
fork[i]=1;
cobegin
process philosopher_i( ) {   //i= 0,1,2,3,4
  while(true) {
    think( );
    P(fork[i]);			//先取右手的叉子
    P(fork[(i+1)%5]);		//再取左手的叉子
        eat( );
    V(fork[i]);
    V(fork[(i+1)%5]);
     }
}
coend
semaphore fork[5];
for (int



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: