- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java语言程序设计 第7章 多线程与异常处理 1、多线程的概念 2、线程的使用 3、线程同步 4、异常处理 7.1 多线程的概念 1、线程与多线程 2、线程的生命周期 3、线程的优先级 1、线程与多线程 什么是线程 进程与多线程的区别 Java的多线程机制 在Java编程中,每实例化一个线程对象,就创建一个虚拟的CPU,由虚拟CPU处理本线程数据。 每个Java程序都有一个主线程,即由main()方法所对应的线程。对于applet,浏览器即是主线程。 除主线程外,线程无法自行启动,必须通过其他程序来启动它。 2、线程的生命周期 线程要经历创建、就绪、运行、阻塞和死亡等5个状态 ,称为生命周期。 7.2 线程的使用方法 1、创建Thread子类构造线程 2、实现Runnable接口构造线程 1、创建Thread子类构造线程 线程的创建与启动 (1)创建一个Thread类的子类; (2)在子类中重新定义自己的run()方法,这个中包含了线程要实现的操作; (3)用关键字new 创建一个线程对象; (4)调用start()方法启动线程。 示例 【例7-1】 创建二个Thread类的子类,然后测试它。 (见教材P205) 这个例子说明了这样几个事实: (1)创建独立执行线程比较容易,Java负责处理了大部分细节。 (2)各线程并发运行,共同争抢CPU资源,线程抢夺到CPU资源后,就开始执行,无法准确知道某线程能在什么时候开始执行。 (3)线程间的执行是相互独立的。 (4)线程独立于启动它的线程(或程序)。 2、 实现Runnable接口构造线程 1、实现Runnable接口 2、定义run( )方法 3、构造线程:Thread(Runnable对象名); 4、启动线程:线程对象.start( ); 示例 【例7-2】 创建一个实现Runnable接口的线程类。(见教材P205) 二种线程方式的用法区别 用多线程设计一个模拟火车站售票大厅的工作情形 1、应用线程的子类 class Sale extends Thread { int s=100; public void run(){ System.out.println(getName() + 售机票第 + s-- +号); } } 2、应用Runnale接口 class Threadsale implements Runnable { int tickets=100 ; public void run() {....} } 线程的暂停和恢复 sleep()方法 该方法指定线程休眠一段时间。如下面语句所示: Thread thread1 = new Thread(); thread1.start(); try { thread1.sleep(2000); } catch(InterruptedException e) { } 7.4 异常处理 异常(Exception)指程序运行过程中出现的非正常现象. 在Java中,把异常分为错误(Error)与异常(Exception)两大类。 异常情况(Exception)表示另外一种“非同寻常”的错误。这种错误通常是不可预测的。常见的异常情况包括内存不足,找不到所需的文件等。 系统异常见P225 表7.1 异常处理 try{ 可能出现异常的程序代码 } catch(异常类1 变量1) { 异常类1对应的异常处理代码 } catch(异常类2 变量2) { 异常类2对应的异常处理代码 } ... [finally] { 无论异常是否发生都要执行的代码 } 异常示例: class A { public static void main(String[] args) { int a=20,b=0; try{ System.out.println(a/b); } catch(Exception e){ System.out.println(“除数为0); } } } 线程中休眠的应用 try { 线程对象.sleep(2000); } catch(InterruptedException e) { } 下课! * 第7章 多线程与异常处理 主讲:张思民 仰恩大学Java课程组 基本方法: 创建线程类,再用其他类调用线程。 class E3 { public static void main(String[] a
您可能关注的文档
- 东华大学计算机科学与技术学院计算机系统与网络技术课件 第十五讲.ppt
- 东华大学计算机科学与技术学院计算机系统与网络技术课件 第十一讲.ppt
- 东华大学计算机科学与技术学院计算机系统与网络技术课件 第四讲.ppt
- 东华大学计算机科学与技术学院计算机系统与网络技术课件 第五讲.ppt
- 东华大学计算机科学与技术学院计算机系统与网络技术课件 第一讲.ppt
- 东华大学计算机科学与技术学院信息系统与数据库技术课件 第二十三讲.ppt
- 东华大学计算机科学与技术学院信息系统与数据库技术课件 第六讲.ppt
- 东华大学计算机科学与技术学院信息系统与数据库技术课件 第十二讲.ppt
- 东华大学计算机科学与技术学院信息系统与数据库技术课件 第十讲.ppt
- 东华大学计算机科学与技术学院信息系统与数据库技术课件 第十六讲.ppt
- 某区纪委书记年度民主生活会“四个带头”个人对照检查材料.docx
- 某县纪委监委2024年工作总结及2025年工作计划.docx
- 某市场监督管理局2024年第四季度意识形态领域风险分析研判报告.docx
- 县委书记履行全面从严治党“第一责任人”职责情况汇报.docx
- 税务局党委书记2024年抓党建工作述职报告.docx
- 某市税务局副局长202X年第一季度“一岗双责”履行情况报告.docx
- 副县长在全县元旦春节前后安全生产和消防安全工作部署会议上的讲话.docx
- 某市委书记个人述职报告.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料1.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料.docx
文档评论(0)