欢迎来到天天文库
浏览记录
ID:40652805
大小:1.70 MB
页数:11页
时间:2019-08-05
《面向对象程序设计实验七 线程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验七线程云南大学信息学院面向对象技术导论java程序设计大学教程实验【开发语言及实现平台或实验环境】Windows2000或XP,JDK1.6与Jcreator4.0【实验目的】1.理解线程的基本概念、优先级、生命周期等。2.掌握线程的一般创建与使用方法(Thread类与Runnable接口)。3.了解线程间的通信、多线程的同步等编程机制。【实验要求】1.运行上课讲解的例子;2.完成下列实验内容。【实验内容】一、读懂并执行下列程序,理解Java中的多线程机制。1.运行下面的程序,理解用创建Thread子
2、类的方法实现多线程。classSimpleThreadextendsThread{publicSimpleThread(Stringstr){super(str);}publicvoidrun(){for(inti=0;i<10;i++){System.out.println(i+""+getName());try{sleep((int)(Math.random()*1000));}catch(InterruptedExceptione){}}System.out.println("DONE!"+getN
3、ame());}}publicclassTwoThreadsTest{publicstaticvoidmain(String[]args){newSimpleThread("GotoBeijing").start();newSimpleThread("Stayhere!!").start();}}问题:(1)程序的运行结果和功能分别是什么?(2)如果程序中去掉try-catch语句,程序是否仍能正常运行?(3)Thread子类是如何实现多线程机制的?(4)如果希望执行三个线程,再显示“GotoShangh
4、ai”,程序如何修改?比较显示次序,是否相同。为什么会有这样的现象?答:1:运行结果:功能:创建两个线程并打印做检测2:去掉后程序能够正常运行但是运行的速度加快,即线程没有了等待时间。3:在编写复杂程序时相关的类可能已经继承了某个基类,而Java不支持多继承,在这种情况下,便需要通过实现Runnable接口来生成多线程用到Thread类的构造方法publicThread(Runnabletarget);//构造一个新的线程对象,以一个实现Runnable接口的类的对象为参数。默认名为Thread-n,n是
5、从0开始递增的整数。4:首先在函数TwoThreadsTest添加一个线程即是添加语句newSimpleThread("GotoQinghai").start();和System.out.println(“GotoShanghai”);即可由于学校的机器是四核的无法完成下面的操作!2.运行下面的程序,理解用实现Runnable接口的方法实现多线程。//这是一个时钟Applet,它显示当前时间并逐秒进行更新。importjava.awt.*;importjava.applet.*;importjava.ut
6、il.*;publicclassClockextendsAppletimplementsRunnable{ThreadclockThread;publicvoidstart(){if(clockThread==null){clockThread=newThread(this,"Clock");clockThread.start();}}publicvoidrun(){while(clockThread!=null){repaint();try{clockThread.sleep(1000);}catch(
7、InterruptedExceptione){}}}publicvoidpaint(Graphicsg){Datenow=newDate();g.drawString(now.getHours()+";"+now.getMinutes()+";"+now.getSeconds(),5,10);}publicvoidstop(){clockThread.stop();clockThread=null;}}问题:(1)在什么情况下一般要通过实现runnable接口实现线程机制?(2)程序的运行结果和功能分别是
8、什么?(3)Runnable接口是如何实现多线程机制的?(4)程序中是通过什么方法如何实现逐秒更新显示时间的?答:(1)在编写复杂程序时相关的类可能已经继承了某个基类,而Java不支持多继承,在这种情况下,便需要通过实现Runnable接口来生成多线程(2)结果:功能:该程序是一个时钟Applet,它显示当前时间并逐秒进行更新。(3)定义一个实现java.lang.Runnable接口的类,并在该类中定义Runnable接口的
此文档下载收益归作者所有