进程管理-----黑白棋子之分

本文介绍了一个简单的Java程序,用于模拟自动分拣系统如何区分混在一起的围棋黑子和白子。通过两个交替运行的过程,确保了每次只有一个过程在执行分拣任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

²      生产围棋的工人不小心把相等数量的黑子和白子混装载一个箱子里,现要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程组成,功能如下:
  (1)进程A专门拣黑子,进程B专门拣白子;
  (2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一个进程去拣子;

 

public class WeiQi{

 public static void main(String[] args){
   int j=-1;
    int k=-1;
  int strji[]=new int[5];//用奇数表示白棋
  int strou[]=new int[5];//用偶数表示黑棋
  int str[]=new int[]{1,3,2,4,5,7,6,8,9,10} ;//所有的黑白子
  boolean flag=true;
  for(int i=0;i<20;i++){
   
   if(flag){//偶数数组先取
    flag=false;
    System.out.println("***");
    if((str[i%10]%2)==0){
     
       if(str[i%10]!=0){
        j++;
        strou[j]=str[i%10];
        str[i%10]=0;
        System.out.println("第"+i+"次"+"strou["+j+"]"+"取得了黑棋子"+strou[j]);
        continue;
      }else{flag=true;
       
      continue;
        }
    }
  }
   if(!flag) {
        flag=true;
        System.out.println("@@@");
       if((str[i%10]%2)!=0){
     
         if(str[i%10]!=0){
          k++;
       strji[k]=str[i%10];
       str[i%10]=0;
       System.out.println("第"+i+"次"+"strji["+k+"]"+"取得了白棋子"+strji[k]);
      
        }else{flag=false;
        continue;
         }
       }
   }
  }
   
   System.out.println("偶数数列寻到的黑子为:");
   for(int a=0;a<5;a++){
    System.out.println(strou[a]);
    }
   System.out.println("奇数数列寻到的白子为:");
   for(int a=0;a<5;a++){
   System.out.println(strji[a]);
    }
  
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值