欢迎来到天天文库
浏览记录
ID:51617560
大小:2.10 MB
页数:51页
时间:2020-03-26
《Java语言程序设计10E LiangPPT习题案例30slide.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1Chapter30MultithreadingandParallelProgramming2ObjectivesTogetanoverviewofmultithreading(§30.2).TodeveloptaskclassesbyimplementingtheRunnableinterface(§30.3).TocreatethreadstoruntasksusingtheThreadclass(§30.3).TocontrolthreadsusingthemethodsintheThreadclass(§30.
2、4).TocontrolanimationsusingthreadsandusePlatform.runLatertorunthecodeinapplicationthread(§30.5).Toexecutetasksinathreadpool(§30.6).Tousesynchronizedmethodsorblockstosynchronizethreadstoavoidraceconditions(§30.7).Tosynchronizethreadsusinglocks(§30.8).Tofacilitate
3、threadcommunicationsusingconditionsonlocks(§§30.9–30.10).Touseblockingqueuestosynchronizeaccesstoanarrayqueue,linkedqueue,andpriorityqueue(§30.11).Torestrictthenumberofaccessestoasharedresourceusingsemaphores(§30.12).Tousetheresource-orderingtechniquetoavoiddead
4、locks(§30.13).Todescribethelifecycleofathread(§30.14).TocreatesynchronizedcollectionsusingthestaticmethodsintheCollectionsclass(§30.15).TodevelopparallelprogramsusingtheFork/JoinFramework(§30.16).3ThreadsConceptMultiplethreadsonmultipleCPUsMultiplethreadssharing
5、asingleCPU4CreatingTasksandThreads5Example:UsingtheRunnableInterfacetoCreateandLaunchThreadsObjective:Createandrunthreethreads:Thefirstthreadprintsthelettera100times.Thesecondthreadprintstheletterb100times.Thethirdthreadprintstheintegers1through100.TaskThreadDe
6、moRun6TheThreadClass7TheStaticyield()MethodYoucanusetheyield()methodtotemporarilyreleasetimeforotherthreads.Forexample,supposeyoumodifythecodeinLines53-57inTaskThreadDemo.javaasfollows:publicvoidrun(){for(inti=1;i<=lastNum;i++){System.out.print(""+i);Thread.yiel
7、d();}}Everytimeanumberisprinted,theprint100threadisyielded.So,thenumbersareprintedafterthecharacters.8TheStaticsleep(milliseconds)MethodThesleep(longmills)methodputsthethreadtosleepforthespecifiedtimeinmilliseconds.Forexample,supposeyoumodifythecodeinLines53-57i
8、nTaskThreadDemo.javaasfollows:publicvoidrun(){for(inti=1;i<=lastNum;i++){System.out.print(""+i);try{if(i>=50)Thread.sleep(1);}catch(InterruptedExceptionex){}}}Everyti
此文档下载收益归作者所有