OS的题目我还是写伪代码吧。(菜哭
void move(){
do{
think();
int i;
for(i=0;i<5;++i){
bool temp=wait(chopsticks[i],chopsticks[(i+1)%5]);
if(temp==true){
eat(i);
release(chopsticks[i],chopsticks[(i+1)%5]);
}
}
}while(1);
}
这里主要是and信号量机制
核心是wait(chopsticks[i],chopsticks[(i+1)%5])