面向对象程序设计实验七 线程课件_第1页
面向对象程序设计实验七 线程课件_第2页
面向对象程序设计实验七 线程课件_第3页
面向对象程序设计实验七 线程课件_第4页
面向对象程序设计实验七 线程课件_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验七线程云南大学信息学院面向对象技术导论java程序设计大学教程实验【开发语言及实现平台或实验坏境】Windows2000或XP,JDK1.6与Jcreator4.0【实验目的】理解线程的基本概念、优先级、生命周期等。掌握线程的一般创建与使用方法(Thread类与Runnable接II)。了解线程间的通信、多线程的同步等编程机制。【实验要求】运行上课讲解的例子;完成卞列实验内容。【实验内容】一、读懂并执行下列程序,理解Java中的多线程机制。运行下面的程序,理解用创建Thread子类的方法实现多线程。classSimpleThreadextendsThreadpublicSimpleThre

2、ad(Stringstr)super(str);publicvoidrun()for(inti二0;i9x*u9orQ:cn:added:二u二二二二mumX:;axf1mgrXXXXX1二二二二hmm:LUMPtu:dada:cOun=两个线程并notif5();方法和synchronized关键词,实现线程的同步程序是通过使用java.lang.Object类的waitO方法为线程间的通讯提供了有效手段。可以调用notify或notifyAll方法来实现。(3)程序结果:ulnxuacUa.匸=二U0C1ZL2Gdl3uhxaacU=4PSuuoi0ZLm0tHre?acil6Dlnrea

3、c3a=7ehxund:!m0Czzceidi3GtHre:eidl1O-d-ix-ead*I理由:在实际的多线程编程中,会碰到多个线程对同一资源进行访问的情况,这时,就需要协调,这种协调机制实现线程的同步,而notifyO;语句就是唤醒一个等待的线程,本线程继续执行来实现线程的同步。synchronized(this);语句的作用是:首先判断对象的锁是否在,如果在就获得锁,然后就可以执行紧随其后的代码段;如果对象的锁不在(已被其他线程拿走),就进入等待状态,直到获得锁。如果去掉此语句,不能实现线程间的通信。理由:会碰到程序中两个线程对同一资源进行访问的情况,去掉此语句该线程无法获得锁,从而进

4、入等待状态,是程序出现异常。二、编写下列程序。模拟一个电子时钟,它可以在任何时候被启动或停止,并可独立运行。这个类称为Clock类,它继承Label类。Label类有一个Thread类型的clock域,以及start()、stopO和run()方法。在run()方法的while循环中,每隔1秒就把系统时间显示在label文本。构造方法初始化时,把lab设为系统的当前时间。importjavaxswing*;importjavaawt*;importjavaawtevent*;importjavautil*;importjava,text,*;publicclassMainextendsJFra

5、meClockclockl,clock2;publicMain()clockl=newClock();clock2=newClock();thisadd(clockl);thisadd(clock?);thissetBounds(100,100,400z400);thissetLayout(newFlowLayout();thissetVisible(true);addWindowListener(newWindowAdapter()publicvoidwindowclosing(WindowEvente)Systemexit(0););publicstaticvoidmain(Stringa

6、rgs)Mainf=newMain();RunnableclassClockextendsJPanelimplementsActionListenerzprivateJTextFieldabc=newJTextField(20);Threadt;privatebooleanpause=false;privateJButtona=newJButton(暂停”);privatelongtimel=System.ourrentTimeMillis();Clock()aaddActionListener(this);thisadd(abc);thisadd(a);t=newThread(this);tstart();publicvoidactionPerformed(ActionEvente)pause=Ipause;if(!pause)asetText(暂停”);elseasetText(nJFn);publicvoidrun()while(true)tryThread)sleep(1000);catch(Interrupted

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论