java语言程序设计基础教程(多线程)ppt

java语言程序设计基础教程(多线程)ppt

ID:39945637

大小:94.00 KB

页数:50页

时间:2019-07-15

java语言程序设计基础教程(多线程)ppt_第1页
java语言程序设计基础教程(多线程)ppt_第2页
java语言程序设计基础教程(多线程)ppt_第3页
java语言程序设计基础教程(多线程)ppt_第4页
java语言程序设计基础教程(多线程)ppt_第5页
资源描述:

《java语言程序设计基础教程(多线程)ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章多线程线程简介Thread类的子类创建线程实现Runnable接口基本的线程控制线程的调度多线程的互斥与同步Daemon线程7.1线程简介到目前为止所介绍过的各种范例都是单线程程序,也就是启动的Java程序在“同一时间”内只会做一件事。文本模式下最常进行的就是单线程程序。有时需要程序“同时”可以作很多事,即所谓多线程(Multi-thread)程序,在窗口程序、网络程序中常使用多线程功能,了解多线程概念与注意事项是非常重要的。7.1.1进程与线程程序是一段静态的代码,它是应用软件执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也

2、是进程本身从产生、发展至消亡的过程。线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。Java的多线程就是在操作系统每次分时给Java程序一个时间片的CPU时间内,在若干个独立的可控制的线程之间切换。7.1.2线程的状态Java使用Thread类及其子类的对象来表示线程,线程在它的一个完整的生命周期中通常要经历如下的4种状态:1.创建状态(newThread)2.可运行状态(Runnable)3.不可运行状态(NotRunnable)4.死亡状态(Dead)7.2Threa

3、d类的子类创建线程用Thread类或子类创建线程对象.编写Thread类的子类时,需要重写父类的run方法,其目的是规定线程的具体操作,否则线程就什么也不做,因为父类的run方法中没有任何操作语句。当JVM将CPU使用权切换给线程时,如果线程是Thread的子类创建的,该类中的run方法就立刻执行。7.3实现Runnable接口创建线程的另一个途径就是用Thread类直接创建线程对象。使用Thread类创建线程对象时,常用的构造方法是:Thread(Runnabletarget);该构造方法中的参数是一个Runnable类型的接口,因此,在创建线程对象时,必须向构造方法的参数传递一个实

4、现Runnable接口类的实例,该实例对象称为所创线程的目标对象。【例7-3】通过接口构造线程体importjava.awt.Graphics;importjava.util.Date;publicclassep7_3extendsjava.applet.AppletimplementsRunnable{//实现接口ThreadclockThread;publicvoidstart(){if(clockThread==null){clockThread=newThread(this,"Clock");clockThread.start();//启动线程}}publicvoidrun()

5、{//run()方法中是线程执行的内容while(clockThread!=null){repaint();//刷新显示画面try{clockThread.sleep(1000);//睡眠1秒,即每隔1秒执行一次}catch(InterruptedExceptione){}}}publicvoidpaint(Graphicsg){Datenow=newDate();//获得当前的时间对象g.drawString(now.getHours()+":"+now.getMinutes()+":"+now.getSeconds(),5,10);//显示当前时间}publicvoidstop()

6、{clockThread.stop();clockThread=null;}}本程序是Applet,要运行Applet程序,必须定义一个html文件,ep7_3.html文件内容如下:上面这个例子是通过每隔1秒种就执行线程的刷新画面功能,显示当前的时间;看起来的效果就是一个时钟,每隔1秒就变化一次。由于采用的是实现接口Runna

7、ble的方式,所以该类Clock还继承了Applet,Clock就可以Applet的方式运行。构造线程体的两种方法的比较:1.使用Runnable接口1)可以将CPU,代码和数据分开,形成清晰的模型;2)还可以从其他类继承;3)保持程序风格的一致性。2.直接继承Thread类1)不能再从其他类继承;2)编写简单,可以直接操纵线程,无需使用Thread.currentThread()。7.4基本的线程控制可以通过线程的方法进行基本的线程控制,下面

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。