欢迎来到天天文库
浏览记录
ID:32535166
大小:81.80 KB
页数:5页
时间:2019-02-11
《java模拟银行叫号机》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、创建一个程序,利用多线程模拟银行的排号器的工作过程,即利用多个线程模拟客户到排号器上取号的过程。提示:设计一个类用于产生号码,设计多个线程模拟用户得到号码。BANK排号的实现SroNum类packageimut.cstd.Bank;publicclassSroNumextendsThread{privateintnum;privatestaticinti=0;booleanisStop=false;publicSroNum(intnum){this.num=num;}publicsynchronizedintgetI(
2、){i++;returni;}publicvoidSstop(){isStop=true;}publicvoidrun(){for(;!isStop;){System.out.println("第"+this.getI()+"位顾客请到"+num+"号窗口");try{Thread.sleep((int)(Math.random()*10000));//Thread.yield();}catch(Exceptione){System.out.println(e.getMessage());}}}}Main(test)类
3、packageimut.cstd.Bank;publicclassText{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubSroNumthread1=newSroNum(1);SroNumthread2=newSroNum(2);SroNumthread3=newSroNum(3);SroNumthread4=newSroNum(4);SroNumthread5=newSroNum(5);thread1.
4、start();thread2.start();thread3.start();thread4.start();thread5.start();try{Thread.sleep((int)(Math.random()*10000000));//Thread.yield();}catch(Exceptione){System.out.println(e.getMessage());}thread1.Sstop();thread2.Sstop();thread3.Sstop();thread4.Sstop();thread
5、5.Sstop();}}实验结果:前5位顾客可到任意窗口,以后的顾客随机窗口。在main线程睡眠结束后,程序结束。第二种方法:SroNum类packageimut.cstd.Bank;publicclassSroNumimplementsRunnable{privateintnum;privatestaticinti=0;booleanisStop=false;publicSroNum(intnum){this.num=num;}publicsynchronizedintgetI(){i++;returni;}publ
6、icvoidSstop(){isStop=true;}publicvoidrun(){for(;!isStop;){System.out.println("第"+this.getI()+"位顾客请到"+num+"号窗口");try{Thread.sleep((int)(Math.random()*10000));//Thread.yield();}catch(Exceptione){System.out.println(e.getMessage());}}}}Main(test)类packageimut.cstd.Ba
7、nk;publicclassText{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubSroNumnum1=newSroNum(1);SroNumnum2=newSroNum(2);SroNumnum3=newSroNum(3);SroNumnum4=newSroNum(4);SroNumnum5=newSroNum(5);Threadthread1=newThread(num1);Threadthread
8、2=newThread(num2);Threadthread3=newThread(num3);Threadthread4=newThread(num4);Threadthread5=newThread(num5);thread1.start();thread2.start();thread3.start();thread4.st
此文档下载收益归作者所有