九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

Java程序設計教程 冶金工業(yè)出版社第9章pod

上傳人:muj****520 文檔編號:156539464 上傳時間:2022-09-27 格式:DOCX 頁數(shù):20 大?。?6.22KB
收藏 版權申訴 舉報 下載
Java程序設計教程 冶金工業(yè)出版社第9章pod_第1頁
第1頁 / 共20頁
Java程序設計教程 冶金工業(yè)出版社第9章pod_第2頁
第2頁 / 共20頁
Java程序設計教程 冶金工業(yè)出版社第9章pod_第3頁
第3頁 / 共20頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《Java程序設計教程 冶金工業(yè)出版社第9章pod》由會員分享,可在線閱讀,更多相關《Java程序設計教程 冶金工業(yè)出版社第9章pod(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 第9章多多線程與與Appplett //例程程9-11:Pii.jaava /*演示示采用多多線程技技術計算算圓周率率*/ publlic claass Pi{{ publlic staaticc vooid maiin(SStriing[[] aargss){ PiCaacullatoor pc = nnew PiCCacuulattor((); Threead t == neew TThreead((pc)); t.sttartt();; try{{ Threead..sleeep (1000000); //休眠眠,等待待可能出出現(xiàn)的異異常情況況

2、t.innterrruppt ();; }cattch((IntterrrupttedEExceeptiion e){{ e.prrinttStaackTTracce()); } } } classs PPiCaacullatoor iimpllemeentss Ruunnaablee{ privvatee douublee laatesstPiiEsttimaate;; publlic voiid rrun((){ try{{ Systtem..outt.prrintt (""Matth.PPI == "++ Matth.PPI + ""\t"" );; calPP

3、i(00.0000011); Systtem..outt.prrinttln ("tthe lattestt PI = ""+thhis..lattesttPiEEstiimatte )); }cattch((IntterrrupttedEExceeptiion e){{ Systtem..outt.prrinttln(("Thhe cacculaatorr iss Innterrrupptedd.")); } } /***用于計計算圓周周率的方方法,aaccuuraccy為計計算精度度*/ privvatee voiid ccalPPi(ddoubble acccu

4、raacy)) thhrowws IInteerruupteedExxcepptioon { thiss.laatesstPiiEsttimaate =0..0; longg itteraatioon = 00; int siggn == -11; //按給給定精度度計算圓圓周率 whille(MMathh.abbs ((Matth.PPI-tthiss.laatesstPiiEsttimaate))>acccurracyy){ if(TThreead..intterrruptted ())) throow nnew IntterrrupttedEExceeptiio

5、n((); iterratiion+++; signn = -siign;; thiss.laatesstPiiEsttimaate += (siign**4.00/(22*itteraatioon-11));; } } } //例程程9-22:SyynDeemo..javva /*演示示沒有進進行線程程同步所所帶來的的問題**/ publliccclasssSyynDeemo{{ publlic staaticc vooid maiin(SStriing[[] aargss){ Demoostrratoor ssharreDeemosstraatorr =

6、neww Deemosstraatorr();; Threead t1 = nnew Thrreadd(shhareeDemmosttrattor,,"t11");; Threead t2 = nnew Thrreadd(shhareeDemmosttrattor,,"t22");; t1.sstarrt()); t2.sstarrt()); } } classs DDemoostrratoor iimpllemeentss Ruunnaablee{ privvatee innt ssharreDaata = 00; publlic voiid rrun(()

7、{ Threead t == Thhreaad.ccurrrenttThrreadd ()); for((intt i = 11; ii <== 5;; i+++){{ int coppy == shhareeDatta; try{{ Threead..sleeep ((iint))(Maath..ranndomm ())*10000))); }cattch((Exccepttionn e)){ e.prrinttStaackTTracce()); } Systtem..outt.prrinttln ("TThreead "+tt.geetNaame ()++"

8、: coppy=""+coopy +"\\tshhareeDatta=""+shhareeDatta);; sharreDaata+++; } } } //例程程9-33:DeeadLLockkDemmo.jjavaa publlic claass DeaadLoockDDemoo{ publlic staaticc vooid maiin(SStriing[[] aargss){ DemooObjjectt a = nnew DemmoObbjecct()); DemooObjjectt b = nnew DemmoObbjecct())

9、; a.annothher = bb; b.annothher = aa; Threead t1 = nnew Thrreadd(a,,"t11");; Threead t2 = nnew Thrreadd(b,,"t22");; t1.sstarrt ((); t2.sstarrt ((); } } classs DDemooObjjectt immpleemennts Runnnabble{{ publlic DemmoObbjecct aanottherr = nulll; publlic voiid rrun((){ thiss.meet

10、hood ((); } publlic synnchrroniizedd vooid metthodd(){{ if(tthiss.annothher != nulll){{ try{{ Threead..sleeep (10000)); }cattch((Exccepttionn e)){ e.prrinttStaackTTracce()); } anottherr.meethood ((); //下面面的代碼碼段實際際上是執(zhí)執(zhí)行不到到的 Systtem..outt.prrinttln ("IIf yyou cann seee tthiss liine,,

11、no deaadloock happpenned""); } } } //例程程9-44:ThrreeTThreeadDDemoo.jaava /*ThhreeeThrreaddDemmo.jjavaa*/ publlic claass ThrreeTThreeadDDemoo{ puubliic sstattic voiid mmainn(Sttrinng[]] arrgs)){ //創(chuàng)建建新線程程 CCusttomTThreead ct11 = neww CuustoomThhreaad(00); CCusttomTThreead ct

12、22 = neww CuustoomThhreaad(11); ///啟動新新線程 cct1..staart ();; cct2..staart ();; //輸出出maiin線程程信息 ffor((intt i = 00; ii < 5; i+++){ Sysstemm.ouut.pprinntlnn("mmainn thhreaad: "+ii); }} SSysttem..outt.prrinttln ("mmainn thhreaad hhas donne!""); } } classs CCus

13、ttomTThreead exttendds TThreead{{ innt iid; puubliic CCusttomTThreead((intt cuustoomThhreaadIDD){ tthiss.idd = cusstommThrreaddID;; } //重定定義子線線程的rrun(()方法 puubliic vvoidd ruun()){ //輸出出自定義義線程的的信息 ffor((intt i = 00; ii < 5; i+++){ Sysstemm.ouut.pprinntlnn (""CusstommT

14、hrreadd #""+ tthiss.idd +"": ""+i)); }} SSysttem..outt.prrinttln ("CCusttomTThreead #"++thiis.iid+"" haas ddonee!")); } } //例程程9-55:DiggitaalCllockk.jaava /*采用用多線程程技術演演示一個個簡單的的數(shù)字時時鐘*// impoort javva.aawt..eveent..*; impoort javva.aawt..*; impoort javvax..swiing..*; publlic cl

15、aass DiggitaalCllockk exxtennds JFrramee{ pubblicc sttatiic vvoidd maain((Strringg[] arggs) { JFFramme fframme == neew DDigiitallCloock((); frramee.shhow((); } pubblicc DiigittalCClocck()){ tthiss.seetSiize((2000,1550);; tthiss.seetDeefauul

16、tCClosseOpperaatioon(JJFraame..EXIIT_OON_CCLOSSE);; ///數(shù)字時時鐘面板板 ffinaal CClocckPaane cp = nnew CloockPPanee();; //設置置按鈕狀狀態(tài)并注注冊事件件監(jiān)聽者者 ffinaal JJButttonn sttartt = neww JBButtton(("sttartt");; ffinaal JJButttonn sttop = nnew JBuuttoon(""stoop")); sstopp.s

17、eetEnnablled((fallse)); sstarrt.aaddAActiionLListteneer(nnew ActtionnLisstenner((){ puubliic vvoidd acctioonPeerfoormeed(AActiionEEvennt ee){ cpp.sttarttCloock((); sttartt.seetEnnablled((fallse)); sttop..settEnaableed(ttruee);

18、 } }}); sstopp.adddAcctioonLiisteenerr(neew AActiionLListteneer()){ pubblicc vooid acttionnPerrforrmedd(AcctioonEvventt e)){ cpp.sttopCClocck()); sttartt.seetEnnablled((truue);; sttop..settEnaableed(

19、ffalsse);; } }}); //設設置面板板布局 JJPannel butttommPanne == neew JJPannel((); bbutttomPPanee.addd(sstarrt);; bbutttomPPanee.addd(sstopp); JJPannel conntenntPaane = nnew JPaanell();; cconttenttPanne.ssetLLayoout((neww BoordeerLaayouut()))

20、; cconttenttPanne.aadd((cp,,BorrderrLayyoutt.CEENTEER);; cconttenttPanne.aadd((butttommPanne,BBordderLLayoout..SOUUTH)); tthiss.seetCoonteentPPanee(coonteentPPanee); tthiss.seetReesizzablle(ffalsse);; } } //例程程9-66:CloockPPanee.jaava /*數(shù)字字時鐘面面板的實實現(xiàn)類**/ impoo

21、rt javvax..swiing..JPaanell; impoort javva.uutill.*;; impoort javva.aawt..*; impoort javva.aawt..fonnt.FFonttRennderrConntexxt; impoort javva.aawt..geoom.**; impoort javva.ttextt.*;; publlic claass CloockPPanee exxtennds JPaanell immpleemennts Runnnabble { //線程程是否中中止的標標志 booo

22、leaan rrunnningg = fallse;; //用于于顯示當當前時間間的字符符串 Strringg tiime = ""Cloock""; Fonnt ffontt = neww Foont(("SaanSeeriff", Fonnt.BBOLDD, 440);; //啟動動報時器器 pubblicc vooid staartCClocck()) { thhis..runnninng == trrue;; Thhreaad tt = neww Thhreaad(tthiss);

23、 t..staart((); } //終止止報時器器 pubblicc vooid stoopCllockk() { thhis..runnninng == faalsee; } //實現(xiàn)現(xiàn)Runnnabble接接口的rrun()方方法 pubblicc vooid runn() { whhilee (tthiss.ruunniing)) { //獲取取當前時時間并轉轉換成字字符串 tthiss.tiime = DDateeForrmatt.g

24、eetTiimeIInsttancce()).foormaat(nnew Datte())); tthiss.reepaiint((); //讓當當前線程程休眠11秒鐘 ttry { Thrreadd.slleepp(10000)); }} caatchh (IInteerruupteedExxcepptioon ee) {{ e.pprinntSttackkTraace(();

25、 }} } } //輸出出當前時時間 pubblicc vooid paiintCCompponeent((Graaphiics g) { suuperr.paainttCommponnentt(g)); Grraphhicss2D g2 = ((Graaphiics22D) g; g22.seetFoont((thiis.ffontt); FoontRRendderCConttextt coonteex == g22.geetFoontRRe

26、ndderCConttextt();; Reectaanglle2DD booundd = thiis.ffontt.geetSttrinngBooundds(tthiss.tiime,, coonteex);; innt sstrXX = (innt) ((tthiss.geetWiidthh() - bbounnd.ggetWWidtth())) // 2)); innt sstrYY = (innt) ((tthiss.geetHeeighht()) - bouund..gettHeiightt())) /

27、 2) + 440; g22.drrawSStriing((thiis.ttimee, sstrXX, sstrYY); } } //例程程9-77:IOOPippeDeemo..javva /*演示示采用管管道機制制的線程程間通信信*/ impoort javva.iio.**; publlic claass IOPPipeeDemmo{ publlic staaticc vooid maiin(SStriing[[] aargss){ try{{ //創(chuàng)建建并連接接管道 finaal PPipeedOuutpuutSttrea

28、am ppoutt = neww PiipeddOuttputtStrreamm();; finaal PPipeedInnputtStrreamm piin == neew PPipeedInnputtStrreamm(poout)); //創(chuàng)建建并啟動動輸出線線程 Threead outtputtThrreadd = neww Thhreaad(nnew Runnnabble((){ publlic voiid rrun((){ writteByytess(poout)); } }); outpputTThreead..staart((); //創(chuàng)建建并啟動動輸

29、入線線程 Threead inpputTThreead = nnew Thrreadd(neew RRunnnablle()){ publlic voiid rrun((){ readdByttes((pinn); } }); inpuutThhreaad.sstarrt()); }cattch((IOEExceeptiion e){{ e.prrinttStaackTTracce()); } } //往管管道中寫寫入數(shù)據(jù)據(jù) publlic staaticc vooid wriiteBBytees(OOutpputSStreeam outtstrream

30、m){ try{{ DataaOuttputtStrreamm ouut == neew DDataaOuttputtStrreamm( new BuffferredOOutpputSStreeam((outtstrreamm) ); Threead t == Thhreaad.ccurrrenttThrreadd ()); for((intt i==0; i<110; i+++){ Systtem..outt.prrinttln ("wwritte iinteegerr "++i+"" too piipe..");; out..wriiteIInt(

31、(i);; t.yiieldd ()); } out..fluush((); out..cloose((); Systtem..outt.prrinttln ("WWritte ddataa too piipe hass doone""); }cattch((IOEExceeptiion e){{ e.prrinttStaackTTracce()); } } //從管管道中讀讀取數(shù)據(jù)據(jù) publlic staaticc vooid reaadByytess(InnputtStrreamm innputtstrreamm){ try{{ DataaInpput

32、SStreeam in = nnew DattaInnputtStrreamm( new BuffferredIInpuutSttreaam(iinpuutsttreaam) ); Threead t == Thhreaad.ccurrrenttThrreadd ()); boolleann eoof == faalsee; whille(!!eoff){ try{{ int i == inn.reeadIInt((); Systtem..outt.prrinttln(("Reead inttegeer ""+i++" ffromm piipe"

33、"); t.yiieldd ()); }cattch((EOFFExccepttionn e)){ eof = ttruee; } } Systtem..outt.prrinttln ("RReadd daata froom ppipee haas ddonee");; }cattch((IOEExceeptiion e){{ e.prrinttStaackTTracce()); } } } //例程程9-8 Heelloo_Worrld..javva impoort javvax..swiing..*; impoort javva.aawt..*;

34、publlic claass Helllo__worrld exttendds JJAppplett{ publlic voiid ppainnt(GGrapphiccs gg){ g.drrawSStriing(("Heelloo,woorldd!",5,10)); } } HellloWoorldd.httml 代碼 <>HELLLO,,WORRLD!!<> > > >

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!