版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计清华大学出版社第7章多线程与异常处理Java语言程序设计第1页第7章多线程与异常处理1、多线程概念2、线程使用3、线程同时4、异常处理Java语言程序设计第2页7.1多线程概念1、线程与多线程2、线程生命周期3、线程优先级Java语言程序设计第3页1、线程与多线程什么是线程Java语言程序设计第4页Java语言程序设计第5页进程与多线程区分Java语言程序设计第6页Java多线程机制在Java编程中,每实例化一个线程对象,就创建一个虚拟CPU,由虚拟CPU处理本线程数据。每个Java程序都有一个根本程,即由main()方法所对应线程。对于applet,浏览器即是根本程。除根本程外,线程无法自行开启,必须经过其它程序来开启它。Java语言程序设计第7页2、线程生命周期线程要经历创建、就绪、运行、阻塞和死亡等5个状态,称为生命周期。一个线程经过new操作进入新生状态经过start方法进入就绪状态经过调度执行run操作使用sleep或wait进入阻塞状态执行完run或System.exit则进入死亡状态Java语言程序设计第8页7.1.3线程优先级高优先级线程在低优先级线程之前得到执行。线程调度是抢先式调度策略,执行方式分时间片方式和非时间片方式(独占式)线程优先级用数字表示,范围是1~10。可经过getPriority(int)和getPriority()设置和获取线程优先级。Java语言程序设计第9页7.2线程使用方法
1、创建Thread子类结构线程2、实现Runnable接口结构线程基本方法:创建线程类,再用其它类调用线程。Java语言程序设计第10页1、创建Thread子类结构线程
线程创建与开启(1)创建一个Thread类子类;(2)在子类中重新定义自己run()方法,这个中包含了线程要实现操作;(3)用关键字new创建一个线程对象;(4)调用start()方法开启线程。Java语言程序设计第11页示例【例7-1】创建二个Thread类子类,然后测试它。(见教材P205)Java语言程序设计第12页这个例子说明了这么几个事实:(1)创建独立执行线程比较轻易,Java负责处理了大部分细节。(2)各线程并发运行,共同争抢CPU资源,线程抢夺到CPU资源后,就开始执行,无法准确知道某线程能在什么时候开始执行。(3)线程间执行是相互独立。(4)线程独立于开启它线程(或程序)。Java语言程序设计第13页2、实现Runnable接口结构线程
1、实现Runnable接口
2、定义run()方法3、结构线程:Thread(Runnable对象名);4、开启线程:线程对象.start();Java语言程序设计第14页示例【例7-2】创建一个实现Runnable接口线程类。(见教材P205)Java语言程序设计第15页二种线程方式使用方法区分用多线程设计一个模拟火车站售票大厅工作情形
Java语言程序设计第16页1、应用线程子类classSaleextendsThread{ints=100;publicvoidrun(){System.out.println(getName()+"售机票第"+s--+"号"); }}classE3{publicstaticvoidmain(String[]args){Salet1=newSale();t1.start();}}Java语言程序设计第17页2、应用Runnale接口classThreadsaleimplementsRunnable{ inttickets=100; publicvoidrun() {....}}publicclassE9_4{publicstaticvoidmain(String[]args){Threadsalet=newThreadsale();//实例化线程
Threadt1=newThread(t,"第1售票窗口");Threadt2=newThread(t,"第2售票窗口");Threadt3=newThread(t,"第3售票窗口");Threadt4=newThread(t,"第4售票窗口");t1.start();t2.start();t3.start();t4.start();}}Java语言程序设计第18页线程暂停和恢复
sleep()方法该方法指定线程休眠一段时间。以下面语句所表示:Threadthread1=newThread();thread1.start();try
{thread1.sleep();}catch(InterruptedExceptione){
}Java语言程序设计第19页7.4异常处理异常(Exception)指程序运行过程中出现非正常现象.在Java中,把异常分为错误(Error)与异常(Exception)两大类。异常情况(Exception)表示另外一个“非同寻常”错误。这种错误通常是不可预测。常见异常情况包含内存不足,找不到所需文件等。
系统异常见P225表7.1Java语言程序设计第20页异常处理try{可能出现异常程序代码}
catch(异常类1变量1){异常类1对应异常处理代码}
catch(异常类2变量2){异常类2对应异常处理代码}
...
[finally]{不论异常是否发生都要执行代码}Java语言程序设计第21页异常示例:classA{publicstaticvoidmain(String[]args){ inta=20,b=0; try{ System.out.println(a/b);} catch(Exceptione){System.out.println(“除数为0");} }}J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年辽宁省高二物理学业水平合格考试卷试题(含答案详解)
- 2025年非遗木雕产业发展趋势分析报告
- 初中化学实验教学中学生实验伦理意识的教育研究课题报告教学研究课题报告
- 信息技术背景下小学教学资源公平分配与高效利用的实证研究教学研究课题报告
- 《基于云计算的企业数据安全存储与数据安全防护技术挑战》教学研究课题报告
- 2026年温州东瓯中学招聘工作人员备考题库及答案详解(考点梳理)
- 高中生图书馆借阅需求与学科融合教学模式的创新研究教学研究课题报告
- 2026年天府新区信息职业学院单招职业技能笔试备考题库及答案解析
- 2026年百色市田东县义圩中心卫生院自主招聘备考题库及答案详解(夺冠系列)
- 国家电投云南国际2026年度校园招聘48人备考题库及完整答案详解
- 贵州省市政工程计价定额2025定额说明(重要)
- 车辆日常保养与维护课件
- 农村集体经济发展讲座
- 2025年工会职工大会制度实施细则
- 2025运动户外圈层人群洞察白皮书
- 新生儿循环系统疾病护理
- T/CUPTA 010-2022共享(电)单车停放规范
- 福建省泉州市南安市2024-2025学年上学期七年级数学期末试卷(原卷版+解析版)
- 2024年征兵心理测试题目
- 病区8S管理成果汇报
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
评论
0/150
提交评论