线程与多线程(11).ppt

线程与多线程(11).ppt

ID:48806069

大小:120.00 KB

页数:22页

时间:2020-01-27

线程与多线程(11).ppt_第1页
线程与多线程(11).ppt_第2页
线程与多线程(11).ppt_第3页
线程与多线程(11).ppt_第4页
线程与多线程(11).ppt_第5页
资源描述:

《线程与多线程(11).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、线程与多线程Java中的线程线程的生命周期线程调度与优先级Java中的线程类与Runnable接口如何实现多线程线程同步Wait(),notify(),notifyAll()线程的interrupt()方法1.Java中的线程程序,进程与线程程序是一段静态的代码,它是应用软件执行的蓝本.进程就是程序的一次动态执行过程,它对应了从代码加载,执行至执行完毕的一个完整过程,这个过程也就是进程本身从产生,发展至消亡的过程。线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的

2、产生,存在和消亡的过程,也是一个动态的概念。线程与进程一样都是控制流程,但比进程更容易控制和销毁,因为涉及的管理资源更少.多线程是指同时存在几个执行体,按几条不同的执行线索共同工作的情况,它使得编程人员可以很方便地开发出具有多线程功能,能同时处理多个任务的功能强大的应用程序。每个Java程序都有一个默认的主线程.对于应用程序,主线程是main()方法执行的线索。对于Applet,主线程是浏览器加载并执行Java小程序。要实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程。线程的例子见W

3、ithoutThread.javaWithThread.java每个线程在生成后到消失之前总是处在以下四种状态之一:2.线程的生命周期新生(新建+就绪)线程生成后立即进入这个状态,即执行生成线程的new语句之后.此时它已有了相应的内存空间和其他资源。调用start()方法后,线程进入可运行状态。可运行当准备就绪的线程被调度并获得处理资源时,便进入运行状态。每一个Thread类及其子类的对象都有一个重要的run()方法,当线程对象被调度执行时,它将自动调用线程的run()方法,run()方法定义了这个线程的操作和功能。暂停(阻塞)发生

4、下列事件之一时进入这种状态:线程本身或另一线程调用suspend()方法线程调用对象的wait()方法线程本身调用sleep()方法线程等待某个I/O操作完成线程与另一个线程join()线程在暂停状态时不会运行,发生下列暂停事件的相反事件时线程回到可运行状态,争夺CPU某线程暂停时,另一线程调用它的resume()方法线程因调用一个对象的wait()方法受阻,该对象的notify()或notifyAll()方法被调用时线程睡眠时,指定的睡眠时间到了线程因I/O受阻,指定的I/O操作已完成提示:suspend()方法和resume()

5、方法已作废。停止(死亡)线程执行完成或另一线程调用stop()方法使其停止时进入这种状态。3.线程调度与优先级Java为每个线程都赋予一个优先级数值,多个线程争夺CPU时,优先级高的线程有优先权。对于优先级相同的线程,则遵循队列的“先进先出”原则。4.Java的线程类与Runnable接口生成新线程的方法有两种:生成作为Thread子类的新类声明一个实现Runnable接口的类4.1Thread类Thread类综合类Java程序中一个线程需要拥有的属性和方法:A.构造函数.两种操作:publicThread()创建一个线程对象pub

6、licThread(Runnabletarget)创建线程对象,参数target称为被创建线程的目标对象.创建目标对象target的类负责实现Runnable接口,给出该接口中run()方法的方法体,在方法体中给出该线程的操作和功能.B.线程优先级:Thread类有3个有关线程优先级的静态常量:MIN_PRIORITY,最小优先级,通常为1MAX_PRIORITY,最高优先级,通常为10NORM_PRIORITY,普通优先级,缺省数值为5制定优先级的方法对应一个新建线程,系统会遵循如下的原则为其指定优先级:新建线程将继承创建它的父线

7、程的优先级.父线程是指执行创建新线程对象语句的线程,它可能是程序的主线程,也可能是某一用户自定义的线程.一般情况下,主线程具有普遍优先级系统可通过调用Thread类的setPriority(inta)方法来修改系统自动设定的线程优先级.a取值是:MIN_PRIORITY,MAX_PRIORITYNORM_PRIORITYC.其他主要方法start()方法:启动线程run()方法:Thread类的run()方法和Runnable接口中的run()方法功能和作用相同,定义线程对象被调度之后所执行的操作.系统的Thread类中,run()

8、方法没有具体内容,所以用户需要创建自己的Thread类的子类,并重写run()方法来覆盖原来的run()方法.sleep方法:使线程休眠一段时间,暂时放弃处理器资源.休眠时间长短由sleep()方法的参数决定.sleep(intmil

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

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

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