清华大学张思民Java课件第8章.ppt

清华大学张思民Java课件第8章.ppt

ID:52206729

大小:179.50 KB

页数:23页

时间:2020-04-02

清华大学张思民Java课件第8章.ppt_第1页
清华大学张思民Java课件第8章.ppt_第2页
清华大学张思民Java课件第8章.ppt_第3页
清华大学张思民Java课件第8章.ppt_第4页
清华大学张思民Java课件第8章.ppt_第5页
资源描述:

《清华大学张思民Java课件第8章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java语言程序设计第7章多线程与异常处理主讲:张思民仰恩大学Java课程组第7章 多线程与异常处理1、多线程的概念2、线程的使用3、线程同步4、异常处理7.1多线程的概念1、线程与多线程2、线程的生命周期3、线程的优先级1、线程与多线程什么是线程进程与多线程的区别Java的多线程机制在Java编程中,每实例化一个线程对象,就创建一个虚拟的CPU,由虚拟CPU处理本线程数据。每个Java程序都有一个主线程,即由main()方法所对应的线程。对于applet,浏览器即是主线程。除主线程外,线程无法自行启动,必须通过其他程序来启动它。2、线程的生命周期线程要经历创建、就绪、运行、阻塞和死亡

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

3、资源,线程抢夺到CPU资源后,就开始执行,无法准确知道某线程能在什么时候开始执行。(3)线程间的执行是相互独立的。(4)线程独立于启动它的线程(或程序)。2、实现Runnable接口构造线程1、实现Runnable接口2、定义run()方法3、构造线程:Thread(Runnable对象名);4、启动线程:线程对象.start();示例【例7-2】创建一个实现Runnable接口的线程类。(见教材P205)二种线程方式的用法区别用多线程设计一个模拟火车站售票大厅的工作情形1、应用线程的子类classSaleextendsThread{ints=100;publicvoidrun(){S

4、ystem.out.println(getName()+"售机票第"+s--+"号");}}classE3{publicstaticvoidmain(String[]args){Salet1=newSale();t1.start();}}2、应用Runnale接口classThreadsaleimplementsRunnable{inttickets=100;publicvoidrun(){....}}publicclassE9_4{publicstaticvoidmain(String[]args){Threadsalet=newThreadsale();//实例化线程Threadt

5、1=newThread(t,"第1售票窗口");Threadt2=newThread(t,"第2售票窗口");Threadt3=newThread(t,"第3售票窗口");Threadt4=newThread(t,"第4售票窗口");t1.start();t2.start();t3.start();t4.start();}}线程的暂停和恢复sleep()方法该方法指定线程休眠一段时间。如下面语句所示:Threadthread1=newThread();thread1.start();try{thread1.sleep(2000);}catch(InterruptedExceptione

6、){}7.4异常处理异常(Exception)指程序运行过程中出现的非正常现象.在Java中,把异常分为错误(Error)与异常(Exception)两大类。异常情况(Exception)表示另外一种“非同寻常”的错误。这种错误通常是不可预测的。常见的异常情况包括内存不足,找不到所需的文件等。系统异常见P225表7.1异常处理try{可能出现异常的程序代码}catch(异常类1变量1){异常类1对应的异常处理代码}catch(异常类2变量2){异常类2对应的异常处理代码}...[finally]{无论异常是否发生都要执行的代码}异常示例:classA{publicstaticvoidm

7、ain(String[]args){inta=20,b=0;try{System.out.println(a/b);}catch(Exceptione){System.out.println(“除数为0");}}}线程中休眠的应用try{线程对象.sleep(2000);}catch(InterruptedExceptione){}下课!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。