文档详情

Java语言程序设计电子课件 第5章 多线程编程与异常处理.pptx

发布:2025-03-16约9.1千字共41页下载文档
文本预览下载声明

JAVA语言程序设计

5.1线程的概念5.2线程的生命周期5.3线程的创建5.4线程案例5.5异常的概念与分类5.6异常处理机制5.7异常处理案例5.8综合案例本章小结第5章多线程编程与异常处理

教学目标:随着计算机硬件的更新,多核计算机已经逐渐成为主流产品。为了充分发挥多核的优势,多线程编程成为编程人员必须要掌握的编程方式。程序设计人员编写程序总是希望能够按照预期情况运行,得出一个正确的结果。但有时候程序会莫名中断或运行结果错误,Java语言对于这种预想不到的情况采用异常机制来进行处理。本章主要介绍Java多线程并行程序的建立和运用,同时介绍了异常的概念和异常处理机制。教学重点:掌握Java中线程的概念。掌握线程的生命周期。掌握两种创建线程的方法。掌握异常的概念和分类。掌握Java异常处理机制。第5章多线程编程与异常处理

5.1.1基本概念1.进程在操作系统中,我们熟悉进程的概念,进程是指可以与其他程序并发执行程序的一次执行过程,是系统进行资源分配和调度的独立单位,有时也称为活动或任务。即进程是运行中的程序,是程序的一次运行活动,具有动态性和并发性。2.线程为了使计算机操作系统具有更好的并发性,减少程序在并发执行时所付出的时空开销,在操作系统中引入了线程的概念。线程是进程中的一个实体,是被系统调度和分配的基本单元,每个程序至少包含一个线程,就是“主线程”。5.1线程的概念

5.1.1基本概念线程自己拥有很少的资源,但是它与同属一个进程的其他线程共享该进程的全部资源,从而改善了系统资源的利用率。利用线程编程的概念叫作“多线程编程”。图5-1表示了线程和进程之间的区别。进程就是只拥有一个线程的进程,因为所有的任务都有这一个线程完成,也称该进程为重量级进程。而拥有多个线程的进程因为将任务分给多个线程来执行,每个线程承担的工作量减小,也被成为轻量级进程。图5-1进程与线程关系5.1线程的概念

5.1.2多线程的优点对于多线程机制而言,一个进程可以有多个线程,这些线程共享该进程资源,这些线程驻留在相同的地址空间,共享数据和文件。如果一个线程修改了一个数据项,其他线程可以了解和使用此结果数据。使用多线程编程有以下优点:①程序的运行速度可能加快。②用于创建和撤销线程的开销比创建和撤销进程的系统开销要少得多。③CPU在线程之间切换的开销远比进程之间切换的开销小。④线程机制也增加了通讯的有效性。线程间通讯是在同一进程的地址空间内,共享主存和文件,非常简单,无需内核参与。⑤线程在一些等待的任务实现上可以释放一些珍贵的资源。如内存占用、文件读写等。5.1线程的概念

5.2.1线程的各种状态一个线程在他的整个生存期中可能以集中不通的状态存在,如图5-2所示。尽管线程启动后成为可运行的,但他不一定就立即运行。单CPU的计算机上同一时间只能执行一个操作。因此完整的生命周期内通常要经历新建、可运行、运行、阻塞、死亡等五种状态。图5-2线程的生命周期5.2线程的生命周期

5.2.2线程的各种方法线程在生命周期的不同状态进行转换时,涉及到了许多方法,表5-1介绍了常用方法的作用。表5-1线程的常用方法作用5.2线程的生命周期

5.2.3线程的优先级别在Java中线程的优先级是用数字来表示的,分为10个级别。表5-2列出了不同优先级别的取值范围,默认值和对应的常量。表5-2线程的优先级5.2线程的生命周期

线程可看做有三部分构成:虚拟CPU、代码和数据。代码可以被多个线程共享,独立于数据。当两个线程执行同一个类的实例代码时,这两个线程共享同样的代码。同样,数据也可以被多个线程共享,独立于代码。在Java编程中,线程是通过Java的软件包java.lang中定义的类Thread来实现的。(1)Thread类本身只是线程的虚拟CPU;(2)线程所执行的功能是通过方法run()来完成的,方法run()称为线程体;(3)在一个线程被建立并初始化以后,Java的运行时系统就自动调用run()方法。用户可以有两种方法构造自己的run()方法:(1)一种方法是继承Thread类,定义一个类,继承Thread的线程类,重写其中的run()方法;(2)另一种实现Runnable接口,定义一个类,实现Runnable的接口。重写其中的run()方法,该类对象作为Thread类的参数。5.3线程的创建

5.3.1继承Thread类创建线程采用继承Thread方法创建线程的优点是:run()方法被包含在继承Thread类的类中,有助于简化程序代码。Thread类的构造方法最常用的两种:PublicThread():分配新的Thread对象PublicThread(Runna

显示全部
相似文档