1) % 5;
struct sembuf buf[2] =
{
{left, -1, 0},
{right, -1, 0}
};
semop...+ 1) % 5;
struct sembuf buf[2] =
{
{left, 1, 0},
{right, 1, 0}
};
semop...我们在前面说过,当需要对一个信号量集中的多个信号量操作时,要么全部执行,要么全部不执行,即是一个原子操作,某个进程需要等待两根筷子,即对两个信号量同时P成功才可以用餐,信号量的序号是0~4,可看作筷子的编号,此时semop