欢迎来到天天文库
浏览记录
ID:51617615
大小:2.06 MB
页数:51页
时间:2020-03-26
《Java语言程序设计与数据结构 基础篇原书第11版PPT及其他教辅资源32slide.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1Chapter32MultithreadingandParallelProgramming2ObjectivesTogetanoverviewofmultithreading(§32.2).TodeveloptaskclassesbyimplementingtheRunnableinterface(§32.3).TocreatethreadstoruntasksusingtheThreadclass(§32.3).TocontrolthreadsusingthemethodsintheThreadclass(§32.4).Tocontrolanimationsusingthre
2、adsandusePlatform.runLatertorunthecodeinapplicationthread(§32.5).Toexecutetasksinathreadpool(§32.6).Tousesynchronizedmethodsorblockstosynchronizethreadstoavoidraceconditions(§32.7).Tosynchronizethreadsusinglocks(§32.8).Tofacilitatethreadcommunicationsusingconditionsonlocks(§§32.9–32.10).Touse
3、blockingqueuestosynchronizeaccesstoanarrayqueue,linkedqueue,andpriorityqueue(§32.11).Torestrictthenumberofaccessestoasharedresourceusingsemaphores(§32.12).Tousetheresource-orderingtechniquetoavoiddeadlocks(§32.13).Todescribethelifecycleofathread(§32.14).Tocreatesynchronizedcollectionsusingthe
4、staticmethodsintheCollectionsclass(§32.15).TodevelopparallelprogramsusingtheFork/JoinFramework(§32.16).3ThreadsConceptMultiplethreadsonmultipleCPUsMultiplethreadssharingasingleCPU4CreatingTasksandThreads5Example:UsingtheRunnableInterfacetoCreateandLaunchThreadsObjective:Createandrunthreethre
5、ads:Thefirstthreadprintsthelettera100times.Thesecondthreadprintstheletterb100times.Thethirdthreadprintstheintegers1through100.TaskThreadDemoRun6TheThreadClass7TheStaticyield()MethodYoucanusetheyield()methodtotemporarilyreleasetimeforotherthreads.Forexample,supposeyoumodifythecodeinLines53-57i
6、nTaskThreadDemo.javaasfollows:publicvoidrun(){for(inti=1;i<=lastNum;i++){System.out.print(""+i);Thread.yield();}}Everytimeanumberisprinted,theprint100threadisyielded.So,thenumbersareprintedafterthecharacters.8TheStaticsleep(milliseconds)MethodThesleep(longmills)methodputsthethreadtosleepforth
7、especifiedtimeinmilliseconds.Forexample,supposeyoumodifythecodeinLines53-57inTaskThreadDemo.javaasfollows:publicvoidrun(){for(inti=1;i<=lastNum;i++){System.out.print(""+i);try{if(i>=50)Thread.sleep(1);}catch(InterruptedExceptionex){}}}Everyti
此文档下载收益归作者所有