欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    java实验八多线程实验报告.docx

    • 资源ID:1394064       资源大小:55.16KB        全文页数:18页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java实验八多线程实验报告.docx

    试验八多线程试验目标:(1)句运用Thread的子类创建线程:骂我实现RUnable接口来实现多线程:(2)驾驭税程之间的数据共享:(3)驾驭线程之间的同步方法;(4)与K线程之间的通信方法.试验任务I1.选择答胸(请将答案标成红色,如(AB):1 .下面关于线程的说法正确的是(ABD)0AMava支持多然程机制。B)一个线程创建并后动后,它招执行自己的11n()方法.假JO通过派生Thmad类实现多线程,则须要在子类中至新定义run。方法,把须要执行的代码写mn方法中;假如通过实现Runnable接口实现多线程,则要编号11n()方法的方法体。C)要在程序中实现多线程.需导入Thread类:importjava.lang.Thread:D)一个程序中的主类不是Thrsd的子类,该类也没有实现RUnnabIe接口,则这个主类运行是不能限制主嫌程的休私2 .假如程序中创建了两个践程.一个的优先级是ThrEd.MAX_PRlORlTY.另一个的优先级是正常的默认优先级,下列陈述哪个是对的?(八)A)正常优先级的线程不运行,百副拥有最高优先级的线程停止运行。B)即信拥有最高优先级的线程结束运行,正常优先级的线程也不会运行。C)正常优先级的线程优先运行。D)上述说法都不对。3,下面哪个是RUnnable接口中的抽象方法(D)?AWart)stpOyieldD)run4 .编译下面的理序,得到的结果是(C)。publicclassAimplementsRunnablc(publicvoidrun()SvsJcm.out.println(*OK.*);)publicstaticvoidmain(Stringllargs)I-hreadI-h=ncw'Ilircad(newA();Th.start();I)A)程序不能编译,产生异样。B)程序能维泽运行,但没有任何结果输出。C)程序能编译运行,输出结果:0K.D)上面说法都不对。5为什么处于激活状态的线程可能不足当前正在执行的线程?(BCD)(备注:激活(UnbkKk);假如堵塞线程的疗务发生,则该线程被激活并进入就绪队列.)A)因为已经执行完run。方法。B)税程正在等待次盘输入。C)该线程调用了Wai方法。3该线程正在休嵌状态。5 .下面是个多线程的程序:PUbliCclassSimpleThreadextendsThreadpublicSiiiipleThrcad(Strinstr)(super(str):publicvoidrunOfor(inti=0:i<10:i+)System.out.println(i*+getNaoeO);try(sleep(long)(Math,randomO*1000);)catch(InlcrruptedExceptione)1System,out.println(,DONH!”+getXame();publicclassTwoThreadsTest(publicstaticvoidaain(Stringargs)(newSiaPIeThr©ad"Jamaica"),startO:newSiBpleThreadCFiji*).startO:(I)输入该程序并运行之,体会多战程的程序的编写方法。输入该程序后执行结果截图如下:r三丁,Radoc启三日控制台次test(2)Javajgffi?EdevelopsJavajdkl.7.0-51binavaw.e×eFijiJamaica1Fiji1 3maica2 Fiji3 3a11aica4 Fiji5 JdTdiCa6 Fiji7 Fiji4 "Edis5 "面die。6 Fiji7 Dairaica8 Damaica9 Fiji10 Fiji11 Damaica12 FijiDOME!Fiji13 DamaicaDONE13amaica(2)将该程序该为通过实现RUnMbIe接口的方式实现多线程。改为Runnable后程序代码如Hpackagezi;publicclassEx8_2_2<publicstaticvoidmain(Strigargs)(Movemove-newMove();move.testl.start();move.test2.start();)classMoveimplementsRunnableThreadSStljeSt2;Move()(testl=newThread(this);testl.setName(''Jamaica*');test2=newThread(this);test2.setName("Fiji");publicvoidrun()(if(Thread.currentThread()=testl)for(int(System.out.println(testl.getName();)elsefor(inti=lji<=5;1+)(System.out.println(test2.getName();)运行结果截图如下:=X(Javadoc::aK<E3F±>Ex8-2_2JavaE:developsJavajdkl.7.0_51binjavaw.exe(JamaicaJdmdiCaDamaicaJamaiCaDamaicaFiji3omoicaFIjio11y>icaFiji3,课本270页课后习题第4题.IPeftieSMServmmDataSourceExplorer£v)SnippetsSConsole::Cterminated>Exe8.4JavaApplicationGdevdopsjavarebinjava.exe(201衅5月28日上午9H)kl7)AstartBstartAend8endCend下面给出一个范例(只供参考):(1)这个程序运行就是一个进程,依据要求要设计三个线程,首先给出一个格助三个线程通信的类:/协助三个线程之间通信的类classSyncObject(2)接下来依据要求设计A战程和B跷程,因为两个线程功能相同,所以可以是同一个类的不同实例对象,设计该类如卜:线程Mcfi的交classWaitThreadextendsThreadfinalSyncObjectso;Stringname;WaitThread(SyncObjectso,Stringname)this.so-so;this.naine=name;)*©Overridepublicvoidrun()»ynchronized($o)/RfliSSSystem.out.println(name+',start");try(so.wait();)catch(Exceptione)e.printStackTrace();)so.notifyAll();/三SttUI?System.out.printIn(name+"end");)我们可以有到,花本设计方法与书本并无区分,同样为了协调三个我程之间通信,我们运用了个通信类,依据规范操作,斑个线程对通信类实例进行操作时,须要进行同步,就是获得锁旗标具体执行就是依据题意,调用WailO等待,留意WaiIo跟SIeePO是有区分的,前者会自动择放CPV和同步锁战标,而后者会修放CP1.但不会择放同步锁如标,在这里,出于三个线程都运用了同一个同步对象.因此.须要运用WaitC(当然大家也可以不运用通伯对望来完成这个题目).(请大家具体看课本262页的解析)WaitO之后,就将自己至于就绪等待队列,然后so.notifAll();/唤留H他线程是噢醒其他战程,很明显在当前进程中,一共才三个税程,A和B进入了Wait状态,它们唤醒的就只有C了,于是C出场.(3)关于C的类设计结构范本跟上面A、B类一样,就是在run方法里面依据要求编写,苜先就是SIeeP一段时间,参数单位是亳秒,然后调用n<nifya11让A和B接着运行R和B运行结束之后,自然会回到C运行,这时如何按起意来推阍其他线程都已结束呢?我们可以再一次,作用是C放弃当前CPY与银旗标,让其他线程先运行完毕,这个时候假如C城程重新起先回到CPU执行,意味芾没有其他蚊程了,也就是可以推断AB己经执行完7.于是自己也开心的结束运行.关搂代码见下:try(SleeP(5000);/sleep后唤量其他线程,然后自己Waitso.notifyAll();so.wait();)catch(E×ceptione)e.printStackTrace();)(4)泅试类一如既往马书本一样,如下:/测试类,执行A,B,C三个线程publicclassEXe8_4publicstaticvoidmain(Stringargs)SyncObjectso=newSyncbject();WaitThreadthreadl=newWaitThread(so,A");WaitThreadthread2=newWaitThread(so,"B");NotifyThreadthread3=newNotifyThread(so,"C);threadl.start();thread2.start();thread3.start();该题代码如下,packagezi;publicclassEX8_3ThreadA-newThread("A")(publicvoidrun()Wait("A"););ThreadB=newThread("B")publicvoidrun()Wait("B");;ThreadC三newThread("C")publicvoidrun()while(true)if(!A.isAlive()&&!B.isAlive()return;tryThread.sleep(2);catch(InterruptedExceptione)(e.printStackTrace();notifyall();;publicsynchronizedvoidWait(Stringname)System.out.pritln(name+"start");try(Wait();catch(InterruptedExceptione)ePrintStackTraceO;System.out.printIn(name+"end");)publicsynchronizedvoidnotifyall()notifyAll();publicstaticvoidmain(Stringargs)Ex8_3testnewEx8_3();A、B两税程起输入Start和命Hiend,不过中间有C让浅程休眠2秒,没法全都次性输出,之后再唤阴.让AB接#输出下半部分endtest.A.start();test.B

    注意事项

    本文(java实验八多线程实验报告.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开