进程间通信(四)--Peterson算法


两个进程都想进入临界区。


该算法思路:

enterRegion(int process);//进入临界区

criticalRegion();//临界区

leaveRegion(int process);离开临界区


全局变量:

private int turn;//轮到哪一个进程进入临界区

private boolean[] interested = new boolean[]{false,false}//进程打算进入临界区的意愿,下标代表进程号


核心方法:

public void enterRegion(int process){
        
        int other = 1 - process;//表示另一个进程号
        interested[process] = true;//表示自己想要进入临界区的意愿
        turn = process;//设置轮到自己进入临界区
        //如果轮到自己进入临界区但是其他进程在临界区中,只能循环等待
        while(turn == process && interested[other] == true){}
  }
public void leaveRegion(int process){
   
   interested[process]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值