資源描述:
《實驗三:java多線程(高磊)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、夭津理工丸學(xué)賣臉報告學(xué)院(系)名稱:計算機與通信工程學(xué)院姓名高磊學(xué)號20092064專業(yè)計算機科學(xué)與技術(shù)班級2009級04班實驗項目實驗三:Java多線程課程名稱Java語言程序設(shè)計課程代碼0660266實驗時間2011年04月27日第3、4節(jié)實驗地點計算機軟件實驗空7-215批改意見成績教師簽字:實驗?zāi)康模?.理解并掌握進(jìn)程、線程、調(diào)度、線程狀態(tài)、優(yōu)先級、互斥、同步等基本概念2.理解并掌握J(rèn)ava+創(chuàng)建線程的兩種方法3.理解并掌握%眩線程控制方法實驗內(nèi)容:代碼:1.見“題目l.pdf”classShopimplementsRunnable{Threadzhan
2、gWorker,wangWorker,boss;Shop(){boss=newThread(this);zhangWorker=newThread(this);wangWorker=newThread(this);zhangWorker.setName("張工”);wangWorker.setName(n3ETH);boss.setName(”老板”);}publicvoidrun(){inti=0;if(Thread.currentThread()==zhangWorker){while(true){try{i++;System,out.printf(n%
3、s已經(jīng)搬運了Ed箱蘋果”zzhangWorker.getName(),i);if(i==3)return;Thread.sleep(10000);}catch(InterruptedExceptione){System?ou匸.printf(”%sit%sift續(xù)工作”,boss?getName(),zhangWorker?getName());}}}elseif(Thread.currentThread()==wangWorker){while(true){try{i++;System,out.printf(”%s已經(jīng)搬運了労d箱香蕉”,wan
4、gWorker.getName(),i);if(i==3)return;Thread.sleep(10000);}catch(InterruptedExceptione){System,out.printf("%s讓%s繼續(xù)丄作”fboss.getName(),wangWorker.getName());}}}elseif(Thread.currentThread()==boss){while(true){zhangWorker.interrupt();wangWorker.interrupt();if(!(wangWorker?isAlive()
5、
6、zha
7、ngWorker?isAlive())){System,out.printf(”%n%s下班”,boss?getName());return;}}}}}publicclassShoptest{publicstaticvoidmain(Stringarg[]){Shopshop=newShop();shop?zhangWorker?start();shop.wangWorker.start();shop.boss?start();}}試驗截圖:厭Problems@Javadoc
8、越聲明5控制臺莢、<5^止aShoptest[JavaD:jdkjdkl.6.0
9、_10binjavaw.exe(2011-4-27下午10:3?王工已經(jīng)搬運了1箱香蕉老板讓王工纟性續(xù)工作王工已經(jīng)搬運了2箱香蕉老板讓王工繼續(xù)工作王工已經(jīng)搬運了3箱香蕉張工已經(jīng)搬運了1箱蘋果老板讓張工絕續(xù)工作張工已經(jīng)鍛運了2箱蘋果老板讓張工纟性續(xù)工作張工已經(jīng)搬運了3箱蘋果老板下班2.見“題目2.pdf”packagesale;classTicketseller{intfiveNumber=l,tenNumber=0ztwentyNumber=0;publicsynchronizedvoidsellTicket(intreceiveMoney,intbuyNu
10、mber){if(receiveMoney==5){fiveNumber=fiveNumber+1;System,out.printf(”%s給我5元錢,這是您的1張入場券”zThread.currentThread().getName());}elseif(receiveMoney==10&&buyNumber==2){tenNumber=tenNumber+l;System,out.printf(”%s給我10元錢,這是您的2張入場券”zThread.currentThread().getName());}elseif(receiveMoney==1
11、0&&buyNumber