Java基础案例教程(第3版) 课件 第8章 多线程.pptx

Java基础案例教程(第3版) 课件 第8章 多线程.pptx

  1. 1、本文档共99页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第8章多线程《Java基础案例教程》(第3版)

学习目标/Target了解线程的创建和启动,能够简述3种创建和启动线程的方式熟悉线程的生命周期及状态转换,能够简述线程生命周期中的六种基本状态和它们之间相互转换的方式熟悉线程安全问题,能够简述多线程程序出现线程安全问题的原因了解线程和进程,能够简述进程与线程的概念了解线程同步,能够简述实现线程同步的3种方式

学习目标/Target掌握线程同步的方式,能够使用同步代码块、同步方法、Lock锁这3种方式同步线程了解线程池,能够简述线程池的概念以及优点熟悉线程池的使用,能够使用ThreadPoolExecutor创建线程池对象,并使用线程池对象执行线程任务熟悉线程的控制,能够通过线程优先级、线程休眠、线程让步和线程插队实现对线程的控制掌握线程的创建和启动,能够使用继承Thread类、实现Runnable接口、基于Callable接口和FutureTask类这3种方式创建线程

章节概述/Summary日常生活中,许多事情都是并行执行的。例如,人可以同时进行呼吸、血液循环、思考问题等活动。在一个应用程序中也可以同时存在多个执行路径,每个执行路径独立执行不同的任务或代码块,这种有多条并发执行路径的程序,称为多线程程序。本章将对多线程的相关知识进行详细讲解。

目录/Contents0102线程与进程线程的创建和启动03线程的生命周期及状态转换

目录/Contents0405线程同步线程的控制06线程池

线程与进程8.1

8.1线程与进程了解线程和进程,能够简述进程与线程的概念先定一个小目标!

8.1线程与进程一台计算机可以同时运行多个程序,每个运行中的程序都是一个进程,每个进程拥有自己的资源和状态,具有一个相对独立的执行环境。进程是程序的实例,是操作系统动态执行的基本单元。虽然计算机允许多个程序同时运行,但实际上计算机中单核的CPU同一时刻只能处理一个进程,用户之所以认为同时会有多个进程在运行,是因为计算机系统采用了“多道程序设计”技术。

8.1线程与进程多道程序设计,是指计算机允许多个相互独立的程序同时进入内存,并相互穿插运行。多道程序技术将CPU的整个生命周期划分为相同的时间片,每个CPU时间片内只处理一个进程,但由于CPU划分的时间片很微小,且运行速度快,所以宏观上表现为计算机可以同时运行多个程序,处理多个进程。

8.1线程与进程进程的实质是程序在多道程序系统的一次执行过程,但进程的实际运作单位是线程。线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中。每个进程中至少存在一个线程,每一个线程都是进程中一个单一顺序的控制流。

8.1线程与进程一个进程中的多个线程可以并行执行不同的任务。在前面章节的程序中,代码都是按照调用顺序依次执行,没有出现两段程序代码交替运行的效果,这样的程序称作单线程程序。如果希望程序中实现多段程序代码交替运行的效果,则需要在程序中创建多个线程,即多线程程序。一个多线程程序在执行过程中会产生多个线程,这些线程可以并发执行并相互独立,其执行过程的示意图如下图所示。

线程的创建和启动8.2

8.2线程的创建和启动掌握线程的创建和启动,能够使用继承Thread类、实现Runnable接口、基于Callable接口和FutureTask类这3种方式创建线程先定一个小目标!

8.2线程的创建和启动要编写多线程程序,需要在程序中创建并启动除主线程之外的其他线程。Java中使用Thread类来代表线程,所有的线程对象都必须是Thread类或其子类的实例。Thread类提供给了用于分配线程对象的构造方法,常用构造方法如下。方法声明说明Thread()创建一个线程对象Thread(Stringname)创建一个名称为name的线程对象Thread(Runnabletarget)根据任务对象target创建一个线程对象Thread(Runnabletarget,Stringname)根据任务对象target创建一个线程对象,并指定线程对象的名称为name如果未指定线程名字,程序会自动为线程分配格式为“Thread-n”的名称,n为非负整数的数字。

8.2线程的创建和启动Thread类提供多种方法用于操作线程,其中常用方法如下表所示。方法声明说明StringgetName()获取当前线程的名称voidsetName(Stringname)将当前线程的名称更改为参数namevoidstart()启动一个新线程voidrun()线程的执行方法,是线程执行的主体staticvoidsleep(longmillis)使当前正在执行的线程休眠millis毫秒staticThreadcurrentThread(

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档