第6章Java的多线程.ppt
《第6章Java的多线程.ppt》由会员分享,可在线阅读,更多相关《第6章Java的多线程.ppt(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 淮海工学院淮海工学院 计算机课程第6章Java的多线程 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 淮海工学院淮海工学院 计算机课程6.1 线程的基本概念线程的基本概念1.程序、进程与线程的区别程序、进程与线程的区别线程是比进程更小的执行单位,线程是比进程更小的执行单位,一个进程在执行过程中可以一个进程在执行过程中可以产生多个线程,每个线程有自己的产生、存在、消亡的过程。产生多个线程,每个线程有自己的产生、存在、消亡的过程。线程间可以共享相同的内存单元线程间
2、可以共享相同的内存单元,实现数据交换、实时通信,实现数据交换、实时通信和同步操作。和同步操作。进程是程序的一次动态执行过程进程是程序的一次动态执行过程(放电影),(放电影),对应着代码加载、对应着代码加载、执行到执行完毕的全过程。每一个进程都有自己独立的一块内执行到执行完毕的全过程。每一个进程都有自己独立的一块内存空间、一组系统资源。在进程概念中,每一个进程的内部数存空间、一组系统资源。在进程概念中,每一个进程的内部数据和状态都是完全独立的。据和状态都是完全独立的。程序是一段静态的代码,程序是一段静态的代码,是应用软件执行的蓝本是应用软件执行的蓝本(电影胶片)(电影胶片)。淮海工学院淮海工学院
3、 计算机课程 2.Java的多线程的多线程Java内在支持多线程,内在支持多线程,它的所有类都是在多线程下它的所有类都是在多线程下定义的,定义的,Java利用多线程可以开发能同时处理多个利用多线程可以开发能同时处理多个任务的功能强大的应用程序。任务的功能强大的应用程序。Java程序通过程序通过流控制流控制来执行来执行程序流程序流,程序中单个顺程序中单个顺序的流控制称为线程序的流控制称为线程,多线程则指的是在单个程序多线程则指的是在单个程序中可以同时运行多个不同的线程,执行不同的任务中可以同时运行多个不同的线程,执行不同的任务。多线程意味着一个程序的多行语句可以看上去几乎多线程意味着一个程序的多
4、行语句可以看上去几乎在同一时间内同时运行。在同一时间内同时运行。淮海工学院淮海工学院 计算机课程 4.使用多线程的好处:使用多线程的好处:使使UI交互的响应更块交互的响应更块充分利用多处理器系统充分利用多处理器系统简化建模简化建模执行异步和后台处理执行异步和后台处理 3.Java线程的组成线程的组成 由三部分组成由三部分组成:1).虚拟的虚拟的CPU,封装在,封装在java.lang.Thread类中类中2).CPU所执行的代码所执行的代码,传递给,传递给Thread类类3).CPU所处理的数据所处理的数据,传递给,传递给Thread类类 淮海工学院淮海工学院 计算机课程Java中的线程多任务
5、示意图中的线程多任务示意图操作系统 共享内存局部变量Java虚拟机应用程序2应用程序1线程1线程2线程3局部变量局部变量 淮海工学院淮海工学院 计算机课程6.2 线程的状态与生命周期线程的状态与生命周期新建新建其他阻塞其他阻塞终止终止运行运行等待阻塞等待阻塞对象锁阻塞对象锁阻塞可运行可运行start()sleep()时间到获得锁wait()scheduler()yield()sleep()或join()run()方法结束synchronizednotify()notifyAll()Interrupt()淮海工学院淮海工学院 计算机课程(1)创建状态)创建状态(new Thread)执行下列语句
6、时,线程就处于创建状态:执行下列语句时,线程就处于创建状态:Thread myThread=new Thread();当一个线程处于创建状态时,它仅仅是一当一个线程处于创建状态时,它仅仅是一个空的线程对象,系统不为它分配资源。个空的线程对象,系统不为它分配资源。淮海工学院淮海工学院 计算机课程(2)可运行状态可运行状态(Runnable)Thread myThread=new Thread();myThread.start();当一个线程处于可运行状态时,系统为这个线程分当一个线程处于可运行状态时,系统为这个线程分配了它需的系统资源,这样该线程处于运行就绪状配了它需的系统资源,这样该线程处于运
7、行就绪状态,系统中可以同时有多个线程处于态,系统中可以同时有多个线程处于Runnable 状态。状态。(3)运行状态(运行状态(Running)是线程占有是线程占有CPU并实际运行的状态。并实际运行的状态。淮海工学院淮海工学院 计算机课程(4)阻塞状态(阻塞状态(Blocked)阻塞状态也称为不可运行状态。因为某种原因(输入阻塞状态也称为不可运行状态。因为某种原因(输入/输输出、等待消息或其它阻塞情况),系统不能执行线程的状出、等待消息或其它阻塞情况),系统不能执行线程的状态。这时即使处理器空闲,也不能执行该线程。态。这时即使处理器空闲,也不能执行该线程。进入不可运行状态的原因有如下几条:进入
8、不可运行状态的原因有如下几条:1)调用了调用了sleep()方法,休眠时间到即进入可运行状()方法,休眠时间到即进入可运行状态态;2)调用了调用了t.join()方法()方法,当当t线程结束或等待时间线程结束或等待时间 到即进入可运行状态;到即进入可运行状态;3)为等候一个条件变量,线程调用为等候一个条件变量,线程调用wait()方法()方法;4)输入输出流中发生线程阻塞输入输出流中发生线程阻塞;淮海工学院淮海工学院 计算机课程线程的终止一般可通过两种方法实现:线程的终止一般可通过两种方法实现:自然撤消自然撤消(线程执行完)(线程执行完)被停止被停止(调用(调用stop()方法)方法)目前不推
9、荐通过调用目前不推荐通过调用stop()来终止线程的执行,来终止线程的执行,而是让线程执行完。而是让线程执行完。(5)死亡状态(死亡状态(Dead)使用线程时要注意线程的同步,可以用使用线程时要注意线程的同步,可以用synchronized来修饰那些不能被中途打扰的方法。来修饰那些不能被中途打扰的方法。淮海工学院淮海工学院 计算机课程6.3 在程序中实现多线程在程序中实现多线程1.创建用户自定义的一个线程子类创建用户自定义的一个线程子类 即即创建创建Thread类的子类类的子类,继承线程类继承线程类ThreadThread并重写其并重写其中的方法中的方法 runrun(),(),Thread类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 多线程
限制150内