《多线程与异常处理》PPT课件

《多线程与异常处理》PPT课件

ID:39466302

大小:262.11 KB

页数:35页

时间:2019-07-04

《多线程与异常处理》PPT课件_第1页
《多线程与异常处理》PPT课件_第2页
《多线程与异常处理》PPT课件_第3页
《多线程与异常处理》PPT课件_第4页
《多线程与异常处理》PPT课件_第5页
资源描述:

《《多线程与异常处理》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java语言程序设计清华大学出版社第7章多线程与异常处理第7章 多线程与异常处理1、多线程的概念2、线程的使用3、线程同步4、异常处理7.1多线程的概念1、线程与多线程2、线程的生命周期3、线程的优先级1、线程与多线程什么是进程 进程是程序的一次执行 进程是程序在一个数据集合上运行的过程。进程是系统资源分配和调度的独立单位。什么是线程 在多线程的操作系统中,一个进程中包含多个线程。 线程是独立运行的基本单位。 进程作为资源分配的基本单位。同一进程的多个线程共享该进程所拥有的资源。进程与多线程的区别Java的多线程机制在Java编程中,每实例化一个线程

2、对象,就创建一个虚拟的CPU,由虚拟CPU处理本线程数据。每个Java程序都有一个主线程,即由main()方法所对应的线程。对于applet,浏览器即是主线程。除主线程外,线程无法自行启动,必须通过其他程序来启动它。2、线程的生命周期线程要经历创建、就绪、运行、阻塞和死亡等5个状态,称为生命周期。创建状态通过new命令创建一个线程对象,创建后的线程就处于创建状态。Threadthread1=newThread();就绪状态处于创建状态的线程对象通过调用start()方法就进入了就绪状态。Threadthread1=newThread(); threa

3、d1.start();进入就绪状态的线程对象被放到一个等待队列中,等待系统为其分配对处理器的控制权。运行状态线程处于运行状态,该进程对应的代码目前正在运行。除非运行过程中对处理器的控制权被一个优先级更高的线程抢占,否则该线程将一直运行完毕然后释放对处理器的控制权。run()阻塞状态正在运行的线程由于发生某事件而暂时无法继续执行时,便放弃处理器处于暂停状态。这种暂停状态称为阻塞状态。常见的导致线程阻塞的典型事件为:I/O请求,申请缓冲空间等。sleep(),wait()方法当I/O完成,获得缓冲空间后,线程就由阻塞状态转变为就绪状态。死亡状态线程执行完

4、毕或被另一线程强行终止执行,线程退出运行状态,并不再进入就绪队列。run()方法执行结束,线程会被撤销。执行System.exit()方法强行退出,导致进程强行终止3、线程的优先级Java提供一个线程调度器来监控进入就绪状态的所有线程。线程调度器根据线程的优先级决定调度哪个线程执行。线程的执行方式:时间片方式非时间片方式(独占式)在Java中,线程优先级的范围为1~10,即Thread.MIN_PRIORITY到Thread.MAX_PRIORITY。默认优先级为5,即Thread.NORM_PRIORITY。getPriority()方法可以获得线

5、程的优先级setPriority()方法可以设置线程的优先级7.2线程的使用方法1、创建Thread子类构造线程2、实现Runnable接口构造线程基本方法:创建线程类子类,再用其他类调用线程。1、创建Thread子类构造线程线程的创建与启动(1)创建一个Thread类的子类;Thread类位于java.lang包中(2)在子类中父类中的run()方法,run()方法中包含了线程要实现的操作;(3)用关键字new创建一个线程对象;(4)调用start()方法启动线程。线程启动后当执行完run()方法后,线程会进入死亡状态。示例【例7-1】创建二个Th

6、read类的子类,然后测试它。这个例子说明了这样几个事实:(1)创建独立执行线程比较容易,Java负责处理了大部分细节。(2)各线程并发运行,共同争抢CPU资源,线程抢夺到CPU资源后,就开始执行,无法准确知道某线程能在什么时候开始执行。(3)线程间的执行是相互独立的。(4)线程独立于启动它的线程(或程序)。线程的暂停与恢复publicstaticvoidsleep(long millis):线程休眠millis毫秒。publicstaticvoidsleep(long millis,int nanos)线程休眠millis毫秒及nanos纳秒。Th

7、readthread1=newThread(); thread1.start(); try { thread1.sleep(200,100); } catch(InterruptedExceptione) { }yield():暂停当前正在执行的线程对象,并执行其他线程。wait():使线程进入等待状态直到被另一进程唤醒。notify():把线程的变化通知并唤醒等待的某个线程。2、实现Runnable接口构造线程Runnable接口:位于java.lang包中,定义如下: packagejava.lang; publicinterfaceRunnab

8、le { publicabstractvoidrun(); }所有实现了Runnable接口的类的对象都可以

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

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

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