独木桥问题多线程--java编程.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:2 大小:30KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

独木桥问题多线程--java编程.doc

独木桥问题多线程--java编程.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

publicclassPedestrianimplementsRunnable{staticintan,bn;staticintcount;booleanas=false,bs=false;publicstaticvoidmain(String[]args){Pedestrianp=newPedestrian();}publicPedestrian(){Scannerinputa=newScanner(System.in);System.out.println("请输入在a方向的行人数目:");an=inputa.nextInt();Scannerinputb=newScanner(System.in);System.out.println("请输入在b方向的行人数目:");bn=inputb.nextInt();count=an+bn;while(count>0){thread1a=newthread1(this,"a");a.start();thread1b=newthread1(this,"b");b.start();}}classthread1extendsThread{publicthread1(Runnabler,Stringname){super(r,name);}}publicsynchronizedvoidrun(){thread1t=(thread1)Thread.currentThread();if(t.getName().equalsIgnoreCase("a")&&an>0&&bs==false){as=true;inti=(int)(Math.random()*100%an);if(i<an)i=i+1;an=an-i;System.out.println("a方向上有"+i+"人过桥!"+"还剩人数为:"+an);intn;n=(int)(Math.random()*2);System.out.println("a方向上新增人数:"+n+"现要过桥人数为:"+(an+n));an=an+n;if(an==0){System.out.println("a方向上的人已全过桥!");}as=false;}if(t.getName().equalsIgnoreCase("b")&&bn>0&&as==false){bs=true;intj=(int)(Math.random()*100%bn);if(j<bn)j=j+1;bn=bn-j;System.out.println("b方向上有"+j+"人过桥!"+"还剩人数为:"+bn);intm;m=(int)(Math.random()*2);System.out.println("b方向上新增人数:"+m+"现要过桥人数为:"+(bn+m));bn=bn+m;if(bn==0){System.out.println("b方向上的已全过桥!");}bs=false;}count=an+bn;}}