欢迎来到天天文库
浏览记录
ID:9010487
大小:56.50 KB
页数:7页
时间:2018-04-14
《实验十多线程基础编程阿》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验六多线程基础编程实验目的 通过继承线程类java.lang.Thread创建具有特定功能的线程类,通过实现接口java.lang.Runnable创建可作为线程运行的类,创建线程类对象,启动线程,并观察运行、停止。创建实现了Runnable接口的线程类对象以后,启动线程,通过观察运行和停止,掌握线程类java.lang.Thread常用方法的使用,掌握对线程执行过程中的异常的处理方法。实验要求编写一个实现接口java.lang.Runnable的简单多线程应用程序。实验内容1.使用java.lang.Thread创建具有特定功能的线程类;2.创建以java.la
2、ng.Runnable为接口的线程类;3.启动线程,并观察运行、停止。Exercise1#:Writeaprogramthatdisplaysthenameofthethreadthatexecutesmain.Exercise2#:•Creattwothreads,onethreadprint”A”andtheotherprint“B”alternately.E.g.ABBABAABBA….etc.Exercise3#:•随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000毫秒以内),哪个城市先显示完毕,就决
3、定去哪个城市。分别用Runnable接口和Thread类实现。•publicclassTestlvyou•{•publicstaticvoidmain(Stringargs[])•{•Threadt1=newSubThread("北京");•Threadt2=newSubThread("海南");•t1.start();•t2.start();••}•}••classSubThreadextendsThread•{•publicSubThread(Strings)•{•super(s);•}•publicvoidrun()•{•for(inti=0;i<10;i++)
4、•{•System.out.print(getName());•try•{•sleep((int)(Math.random()*100));•}•catch(InterruptedExceptione)•{•e.printStackTrace();•}•System.out.println("去"+getName());•}•}•}实验七多线程并发编程实验目的掌握使用关键字synchronized同步方法、使用关键字synchronized同步语句块、和使用wait、notify(notifyAll)实现线程的通信,同时,练习使用join实现线程的协作。实验要求在实验
5、六的程序基础上,编写一个多线程并发的应用程序。实验内容1.创建多个线程;2.使用synchronized方法实现线程同步;3.运用wait、notify(notifyAll)实现线程的通信;4.使用join实现线程的协作;Exercise1#:Writeaprogramthatprintsouttheelapsedtimeeachsecondfromthestartofexecution,withanotherthreadthatprintsamessageeveryfifteenseconds.Havethemessage-printingthreadbenotif
6、iedbythetime-printingthreadaseachsecondpassesby.Addanotherthreadthatprintsadifferentmessageeverysevensecondswithoutmodifyingthetime-printingthread.Exercise2#:设计两个线程,一个充当电子表,每隔1秒在DOS窗口显示下一系统时间;另一个充当闹钟,每到整点就开始报时,即在DOS窗口显示5次整点提示,同时将第一个线程挂起,报时完毕再将第一个线程恢复运行。实验步骤(1)创建第一个类继承Thread类用来显示系统时间(1)第
7、一个类实现run()方法创建线程,线程体中每秒获取一次系统时间并显示。(2)创建第二个类继承Thread类用来实现闹钟功能(3)第二个类实现run()方法创建线程,线程体中循环判断当前时间是否为整点,若是则将第一个线程挂起,并每隔一秒输出提示,提示完毕恢复第一个线程的执行(4)创建第三个类,包含main()方法,作为程序的执行入口。importjava.util.Date;classSubThread1extendsThread{publicSubThread1(Strings){super(s);}publicvoidrun(){Datedate1
此文档下载收益归作者所有