版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 多线程与异常处理,学习内容 多线程的基本概念 程序、进程与线程 多任务与多线程 Java多线程编程 通过继承Thread类 通过实现Runnable接口,一、多线程的基本概念,多任务 计算机操作系统同时执行几个程序或任务的能力,如下所示,听歌,下载,QQ聊天,多线程 在同一应用程序中,有多个控制流同时执行,如下所示,文字聊天,视频聊天,发送文件,程序 是一组指令的有序集合,是静态的代码; 例如:你的机器安装了一个QQ程序。 进程 是某个程序的一次执行过程,是一个动态的实体,它有自己的生命周期; 例如:同时允许两个帐号登陆,那此时有两个QQ进程在运行,线程 是一个比进程更细微的程序执行序
2、列,是进程的某个子序列。 例如:上QQ后可以同时文字聊天,视频聊天和发送文件;此时该QQ进程创建并管理三个线程,如下,二、Java多线程编程,Thread类 提供了用于启动、阻塞、恢复以及终止线程的一系列方法,如: start()、sleep(1000) 等 除此之外,还提供了控制线程优先级以及得到线程的名字等方法,如: setPriority(3)、getName() 等,方法一:通过Thread类创建多线程 定义Thread类的子类,如ThdDemo.java 重写Thread类的run()方法,包含了线程要实现的操作; 创建一个该子类的对象; Thread thd = new ThdDe
3、mo(); 调用start()方法启动线程; thd.start(,public class ThdDemo extends Thread public void run() for(int i=0;i5;i+) System.out.println(i); try this.sleep(100);catch(Exception e) public static void main(String args) Thread t = new ThdDemo(); t.start(); /启动线程 System.out.println(“Main continue!”);,线程休眠100ms,线程执
4、行的任务,线程的生命周期,创建状态,new ThdDemo(,start(,sleep(100,P205 例7 1 currentThread():得到当前线程对象 getName() :得到线程的名字,Runnable接口 由于Java只支持单继承,使用扩展Thread类的方式实现多线程,就会导致应用程序不能继承其他的类; 使程序能够多线程执行的更好的方法是实现java.lang.Runnable接口; Runnable接口中只有一个run()方法,实现该接口必须实现这个方法,方法二:通过Runnable接口创建多线程 定义一个实现Runnable接口的类,该类必须实现接口中唯一的run()
5、方法; public class RunThd implements Runnable public void run() /线程体 创建一个该类的对象; RunThd rt = new RunThd(); 创建一个Thread类的对象; Thread th = new Thread(rt); 调用start()方法启动线程,class RunThd implements Runnable public void run() /statement public class RunThdDemo public static void main(String args) RunThd rt = n
6、ew RunThd(); Thread td = new Thread(rt); td.start();,P208 例7 2 比较例7 3、例7 - 4,三、异常处理,错误 致命性的,程序无法继续运行 例如:内存溢出、堆栈溢出等 一般通过修改程序避免错误的发生 异常 非致命性的,作相应的处理后程序可以继续运行 例如:数组越界、文件找不到等,系统定义的常见异常类 NullPointerException 访问的对象还没有实例化 ArrayIndexOutOfBoundsException 访问数组元素时,数组下标越界 FileNotFoundException 试图存取一个并不存在的文件 IOE
7、xception 通常的I/O错误,异常处理 当Java程序运行过程中发生一个可识别的运行异常时,系统会自动产生一个相应的异常类的对象,即产生一个异常 在该异常中包含了程序运行出错的相关信息 用户可以编程捕获该异常,并作相关的处理,异常举例 public static void main(String args) int score = 100,50,60,90,99,7; for(int i = 0;i 7; i+) System.out.println(scorei); System.out.println(“Continue”);,捕获并处理异常 try /可能发生异常的代码段 catc
8、h(ExceptionType e) /异常处理代码,示例SimpleExceptionDemo.java public class SimpleExceptionDemo public static void main(String args) File f = new File(src/bbc.txt); try FileInputStream in=new FileInputStream(f); System.out.println(continue.?); catch(FileNotFoundException e) System.out.println(e.getMessage();,捕获并处理异常(多个) try /可能发生异常的代码 catch(ExceptionType1 e) /异常处理代码1 catch(ExceptionType2 e) /异常处理代码2 finally /总是要执行的代码 /继续执行,说明 catch()子句使用形参指明它所能够捕获并处理的异常类型 e.getMessage() 和 e.printS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国美电器的人力管理
- 超声影像解释指南
- 铸牢中华民族共同体意识“开学第一课”教育大纲
- 谱写生命之歌弘扬运动精神
- 2026年3月临泉皖能环保电力有限公司社会招聘1人备考题库(第二次)附答案详解(典型题)
- 2026广东华南理工大学前沿软物质学院文韬课题组科研助理岗位招聘1人备考题库及答案详解(必刷)
- 预防医学科:疫苗接种指南
- 2026长影集团有限责任公司招聘9人备考题库附答案详解(b卷)
- 2026浙江温州医科大学附属第一医院泌尿外科(男性科)康复技师招聘1人备考题库附参考答案详解(预热题)
- 精神科危急值的护理管理
- 2025年南京房地产市场分析报告
- 会计师事务所组织机构设置及工作职责
- 眼球震颤的计算机建模
- 资源教室工作方案设计
- 工程经济学第2版杜春艳习题答案
- 《走进文言文》八年级1-7单元的翻译
- GB/T 12451-2023图书在版编目数据
- 那垌小学内部控制考核评价报告
- 星火英语四级词汇
- 物业品质服务提升计划表最终版
- 人教版(2022)高中语文必修上册同步训练第八单元综合检测word版含答案
评论
0/150
提交评论