Java语言程序设计实验指导电子教案第08章课件

上传人:痛*** 文档编号:180774565 上传时间:2023-01-07 格式:PPT 页数:24 大小:202.50KB
收藏 版权申诉 举报 下载
Java语言程序设计实验指导电子教案第08章课件_第1页
第1页 / 共24页
Java语言程序设计实验指导电子教案第08章课件_第2页
第2页 / 共24页
Java语言程序设计实验指导电子教案第08章课件_第3页
第3页 / 共24页
资源描述:

《Java语言程序设计实验指导电子教案第08章课件》由会员分享,可在线阅读,更多相关《Java语言程序设计实验指导电子教案第08章课件(24页珍藏版)》请在装配图网上搜索。

1、Java语言程序设计实验指导电子教案第08章8.1 8.1 多线程编程概述多线程编程概述8.2 8.2 线程的创建线程的创建8.3 8.3 线程的优先级线程的优先级8.4 8.4 线程同步线程同步8.5 8.5 线程间通信线程间通信8.6 8.6 线程的控制线程的控制ReturnJava语言程序设计实验指导电子教案第08章8.1.1 8.1.1 什么是多线程什么是多线程8.1.2 Java8.1.2 Java线程模型线程模型ReturnJava语言程序设计实验指导电子教案第08章Return 多线程程序比多进程程序需要更少的管理费用。进程是重量级的任务,需要分配给它们独立的地址空间。进程间通信

2、是昂贵和受限的。进程间的转换也是很需要花费的。另一方面,线程是轻量级的选手。它们共享相同的地址空间并且共同分享同一个进程。线程间通信是便宜的,线程间的转换也是低成本的。当Java程序使用多进程任务处理环境时,多进程程序不受Java的控制,而多线程则受Java控制。多线程可帮助你编写出CPU最大利用率的高效程序,使得空闲时间保持最低。这对Java运行的交互式的网络互连环境是至关重要的,因为空闲时间是公共的。例如,网络的数据传输速率远低于计算机处理能力,而本地文件系统资源的读写速度也远低于CPU的处理能力。当然,用户输入也比计算机慢很多。在传统的单线程环境中,程序必须等待每一个这样的任务完成以后才

3、能执行下一步尽管CPU有很多空闲时间。多线程使你能够获得并充分利用这些空闲时间。Java语言程序设计实验指导电子教案第08章 Java多线程的优点就在于取消了主循环/轮询机制。一个线程可以暂停而不影响程序的其他部分。例如,当一个线程从网络读取数据或等待用户输入时产生的空闲时间可以被利用到其他地方。多线程允许活的循环在每一帧间隙中沉睡一秒而不暂停整个系统。在Java程序中出现线程阻塞,仅有一个线程暂停,其他线程继续运行。线程存在多种状态。线程可以正在运行(running),只要获得了CPU时间它就可以运行;运行的线程可以被挂起(suspend),并临时中断它的执行;一个挂起的线程可以被恢复(re

4、sume),允许它从停止的地方继续运行;一个线程可以在等待资源时被阻塞(block);在任何时候,线程可以被终止(terminate),这将立即中断运行。一旦终止,线程不能被恢复。线程的各状态间关系见教材P190页图8-1所示。Java语言程序设计实验指导电子教案第08章1 1线程优先级线程优先级Java语言程序设计实验指导电子教案第08章Java语言程序设计实验指导电子教案第08章Return Java的多线程系统建立于Thread类、方法以及共伴接口Runnable基础上。Thread类封装了线程的执行。既然不能直接引用运行着的线程的状态,就要通过它的代理处理它。于是Thread 实例产生

5、了。为创建一个新的线程,程序中必须扩展Thread 或实现Runnable接口。Thread类定义了好几种方法来帮助管理线程,见教材P192页表8-1中所列。4 4ThreadThread类和类和RunnableRunnable接口接口Java语言程序设计实验指导电子教案第08章8.2.1 8.2.1 关于主线程关于主线程8.2.2 8.2.2 创建一个线程创建一个线程8.2.3 8.2.3 创建多线程创建多线程8.2.4 8.2.4 使用使用isAlive()isAlive()和和join()join()ReturnJava语言程序设计实验指导电子教案第08章ReturnJava语言程序设计

6、实验指导电子教案第08章创建线程最简单的方法就是创建一个实现Runnable 接口的类,Runnable抽象了一个执行代码单元。可以通过实现Runnable接口的方法创建每一个对象的线程。为实现 Runnable 接口,一个类仅需实现一个run()的简单方法,该方法声明如下:public void run()在run()中,可以定义代码来构建新的线程。重要的是:run()方法能够像主线程那样调用其他方法,引用其他类,声明变量。仅有的不同是:run()在程序中确立另一个并发的线程执行入口。当run()返回时,该线程结束。在已经创建了实现Runnable接口的类以后,需要在类内部实例化一个Thre

7、ad类的对象。Thread 类定义了好几种构造函数。我们会用到的如下:Thread(Runnable threadOb,String threadName)在该构造函数中,threadOb是一个实现Runnable接口类的实例。这定义了线程执行的起点,新线程的名称由threadName定义。建立新的线程后,它并不运行直到调用其start()方法,该方法在Thread 类中定义。从本质上讲,start()执行的是一个对run()的调用。start()方法声明如下:void start()下面我们分别对这两种方法进行介绍:1 1实现实现RunnableRunnable接口接口Java语言程序设计实

8、验指导电子教案第08章Return 到这里,读者可能会奇怪为什么Java有两种创建子线程的方法,哪一种更好呢。所有的问题都归于一点。Thread类定义了多种方法可以被派生类重载。对于所有的方法,唯一的必须被重载的是run()方法。这当然是实现Runnable接口所需的同样的方法。很多Java程序员认为类仅在它们被加强或修改时被扩展。因此,如果你不重载Thread的其他方法,最好只实现Runnable 接口,这当然由自己决定。在本章的其他部分,我们应用实现Runnable接口的类来创建线程。3 3选择合适的方法选择合适的方法Java语言程序设计实验指导电子教案第08章ReturnJava语言程序

9、设计实验指导电子教案第08章ReturnJava语言程序设计实验指导电子教案第08章ReturnJava语言程序设计实验指导电子教案第08章8.4.1 8.4.1 使用同步方法使用同步方法8.4.2 8.4.2 同步语句同步语句ReturnJava语言程序设计实验指导电子教案第08章ReturnJava语言程序设计实验指导电子教案第08章ReturnJava语言程序设计实验指导电子教案第08章8.5.1 Java8.5.1 Java中的线程通讯中的线程通讯8.5.2 8.5.2 关于死锁关于死锁ReturnJava语言程序设计实验指导电子教案第08章ReturnJava语言程序设计实验指导电子教案第08章ReturnJava语言程序设计实验指导电子教案第08章8.6.1 8.6.1 挂起、恢复和终止线程挂起、恢复和终止线程8.6.2 Java 28.6.2 Java 2中的线程控制中的线程控制8.6.3 8.6.3 使用使用instanceofinstanceofReturnJava语言程序设计实验指导电子教案第08章ReturnJava语言程序设计实验指导电子教案第08章ReturnJava语言程序设计实验指导电子教案第08章Return

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!