《线程与多线程处理》PPT课件

《线程与多线程处理》PPT课件

ID:45594092

大小:348.84 KB

页数:23页

时间:2019-11-15

《线程与多线程处理》PPT课件_第1页
《线程与多线程处理》PPT课件_第2页
《线程与多线程处理》PPT课件_第3页
《线程与多线程处理》PPT课件_第4页
《线程与多线程处理》PPT课件_第5页
资源描述:

《《线程与多线程处理》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、上次课程回顾知识点回顾描述和使用java.io包的流式思想;构造文件和过滤器流,并恰当地使用它们;区别流与读者和作者,并进行合适的选择;考察并操作文件和目录;写和更新文本和数据文件;1第八章线程与多线程操作我如何使我的程序执行多个任务?2本节主要内容线程概述Java中的线程程序进程与线程线程的状态和生命周期线程的调度和优先级Java的线程类与Runnable接口如何在程序中实现多现成创建Thread类的子类实现Runnable接口3CPU的访问机制(片选机制)打印机浏览器声卡CPU控制线ControlBUS内存4线程概述以往我们开发的程序大多是单线程的,即一个程序只有从头至

2、尾的一条执行线路。然而有些程序需要多种途径同时运作,比如:服务器同时处理多个客户机的请求。多线程指同时存在几个执行体,按几种不同的执行线路共同工作的情况。5Java中的线程程序、进程和线程程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程。作为蓝本的程序可以被多次加载到系统的不同内存区域分别执行,形成不同的进程。线程是进程内部单一的一个顺序控制流。一个进程在执行过程中,可以产生多个线程。每个线程也有自己产生、存在和消亡的过程。6线程的状态和生命周期每个Java程序都有一个缺省的主线程,对于Applic

3、ation,主线程是main()方法的执行线索;对于Applet,主线程是指挥浏览器加载并执行Java小程序。要想实现多线程,就要在主线程中创建新的线程对象。Java使用Thread类及其子类表示线程。新建的线程在它的一个完成生命周期中通常要经历五种状态。7线程的五种状态新建就绪运行阻塞死亡8线程生命周期示意图新建死亡运行就绪阻塞9线程的调度与优先级处在就绪状态下的线程,可能有多个,它们各自的任务轻重缓急有所不同。Java系统为各种线程制定了一个优先级,优先级较高的现成可以排列在等待队列的前面,先执行。同一优先级的现成,采取先进先出的原则。这个根据线程优先级调度线程的工作由

4、Java的线程调度管理器自动完成。10Java线程类与Runnable接口Java中编程实现多线程有两种方式:创建自己的线程子类在自己的用户类中实现Runnable接口。两种方法都要使用到Java基础类中的Tread类及其方法。11Runnable接口Runnable接口只有一个方法run(),所有实现Runnabel接口的用户类都必须具体实现这个run()方法,为它书写具体的方法体并定义具体操作。run()方法比较特殊,它可以被系统自动识别并执行。多线程应用的实质就是在主线程之外,定义了一个或多个新的线程。12Tread类Tread类综合了Java程序中一个线程所需要拥有

5、的属性和方法,主要有:构造函数线程优先级其他一些主要方法。13构造函数Thread类有多种构造函数,所对应的操作有三种:publicThread():创建一个系统线程类对象;publicThread(Runnabletarget):在上一个构造函数的基础上,利用参数对象——实现了Runnable接口的target对象中所定义的run()方法,来初始化。PublicThread(StringTreadName):在第一个构造函数的基础上,为所创建的线程指定一个名字。PublicThread(Runnabletarget,StringThreadName):实现第2、3两种构造

6、函数的功能。14线程优先级Thread类有三个关于优先级的静态常量:MIN_PRIORITY=1MAX_PRIORITY=10NORM_PRIORITY=5对应于一个新线程,系统会遵循以下原则:新线程将继承创建它的父线程的优先级。一般情况下,线程具有普通优先级。用户可以通过setPriority()方法来修改优先级。15其他主要方法start()方法:启动线程,使线程有新建状态转为就绪状态;run()方法:定义该线程的操作;sleep()方法:使线程暂时进入到休眠状态。sleep(intmillsecond):以毫秒为单位时间;16在程序中实现多线程无论采取前面描述的哪种途

7、径,程序员可以控制的关键性操作有两个:定义用户线程的操作,即定义用户线程的run()方法;在适当的时候建立用户线程实例。下面我们将就两种途径,分别作探讨:17途径一:创建Thread子类例:(TestThread.java)18线程的基本控制终止一个线程当一个线程结束运行并终止时,它就不能再运行了。如:r.stop();方法用来确定一个线程是否仍是活的。isAlive()获取对当前线程的引用例如:Thread.currentThread().getName()+"completed");延迟线程sleep()方法是

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

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

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