1 / 9
文档名称:

Java程序设计教程 冶金工业出版社第9章.doc

格式:doc   大小:35KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Java程序设计教程 冶金工业出版社第9章.doc

上传人:读书之乐 2019/11/29 文件大小:35 KB

下载得到文件列表

Java程序设计教程 冶金工业出版社第9章.doc

相关文档

文档介绍

文档介绍:第9章多线程与Applet//例程9-1:/*演示采用多线程技术计算圆周率*/lassPi{ publicstaticvoidmain(String[]args){ PiCaculator pc=newPiCaculator(); Threadt=newThread(pc); (); try{ (10000); //休眠,等待可能出现的异常情况(); }catch(InterruptedException e){ (); } }}classPiCaculatorimplementsRunnable{ private doublelatestPiEstimate; publicvoidrun(){ try{ ("="+ +"\t"); calPi(); ("thelatest PI="+); }catch(InterruptedException e){ ("The caculatorisInterrupted."); } }/**用于计算圆周率的方法,accuracy为计算精度*/ private voidcalPi(uracy)throwsInterruptedException{ =; longiteration =0; int sign=-1; //按给定精度计算圆周率 while(()>accuracy){ if(()) thrownewInterruptedException(); iteration++; sign=-sign; +=(sign*(2*iteration-1)); } }}//例程9-2:/*演示没有进行线程同步所带来的问题*/lassSynDemo{ publicstaticvoidmain(String[]args){ DemostratorshareDemostrator=newDemostrator(); Threadt1=newThread(shareDemostrator,"t1"); Threadt2=newThread(shareDemostrator,"t2"); (); (); }}classDemostratorimplementsRunnable{ privateintshareData=0; publicvoidrun(){ Threadt=(); for(inti=1;i<=5;i++){ intcopy=shareData; try{ ((int)(()*1000)); }catch(Exceptione){ (); } ("Thread"+()+":copy="+copy +"\tshareData="+shareData); shareData++; } }}//例程9-3:lassDeadLockDemo{ publicstaticvoidmain(String[]args){ DemoObjecta=newDemoObject(); DemoObjectb=newDemoObject(); =b; =a; Threadt1=newThread(a,"t1"); Threadt2=newThread(b,"t2"); (); (); }}classDemoObjectimplementsRunnable{ publicDemoObjectanother=null; publicvoidr