- 1、本文档共99页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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(
您可能关注的文档
- Java基础案例教程(第3版) 课件 第1章 Java开发入门.pptx
- Java基础案例教程(第3版) 课件 第2章 Java编程基础.pptx
- Java基础案例教程(第3版) 课件 第3章 面向对象(上).pptx
- Java基础案例教程(第3版) 课件 第4章 面向对象(下).pptx
- Java基础案例教程(第3版) 课件 第5章 Java API.pptx
- Java基础案例教程(第3版) 课件 第6章 集合与泛型.pptx
- Java基础案例教程(第3版) 课件 第7章 IO.pptx
- Java基础案例教程(第3版) 课件 第9章 网络编程.pptx
- Java基础案例教程(第3版) 课件 第10章 数据库编程.pptx
- Java基础案例教程(第3版) 课件 第11章 Java的反射机制.pptx
- 中考社会模拟试卷:绍兴市柯桥区联盟学校2021-2022学年第一学期九年级10月份独立作业.pdf
- 人教版八年级下册数学课时练《2 课题学习 体质健康测试中的数据分析》 试题试卷 含答案解析.pdf
- 人大在职会计专业货币银行学答案(重新整理定稿)-何平教授(合集五篇).pdf
- 人教版九年级英语上册Unit 7测试题及答案.pdf
- 云南省昆明市2022届”三诊一模“高三3月复习教学质量检测理科综合试题(含答案).pdf
- 人教版小学数学四年级下册第七单元《图形的运动(二)》作业设计.pdf
- 【竞赛题】人教版小学五年级下册数学第17讲《浓度问题》竞赛试题(含详解).pdf
- 《医学信息技术基础》模拟试题与参考答案.pdf
- 《探索三角形相似的条件1》zhongg.pdf
- 七上知识点Sm1-m4知识点总结.pdf
文档评论(0)