PV操作

来源:互联网 发布:js array转json对象 编辑:程序博客网 时间:2024/06/05 06:42
P就是请求资源,V就是释放资源。
例如一个司机与售票员的例子
   在公共汽车上,为保证乘客的安全,司机和售票员应协调工作:
停车后才能开门,关车门后才能行车。用PV操作来实现他们之间的协调。

S1:是否允许司机启动汽车的变量

S2:是否允许售票员开门的变量

driver()//司机进程
{
  while (1)//不停地循环
  {
   P(S1);//请求启动汽车
   启动汽车;
   正常行车;
   到站停车;
   V(S2); //释放开门变量,相当于通知售票员可以开门
  }
}

busman()//售票员进程
{
   while(1)
   {
    关车门;
    V(S1);//释放开车变量,相当于通知司机可以开车
    售票
    P(S2);//请求开门
    开车门;
    上下乘客;
   }
}
1 0