- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 Java多线程
7.1 进程与线程
7.2 线程的创建
7.3 线程的调度与同步机制
7.4 线程的通信
7.1 Java 语言的发展历史与应用
7.1.1 进程的概念
进程是重量级的内核级实体,需要分配它们自己独立的地址空间:包括有虚拟内存
映射、文件描述符、用户ID等,并且每个进程都有属于自己的这些集合,是资源分
配的基本单位。用户的程序要访问结构中的数据、查询或改变状态,唯一方法是通
过系统调用。进程间通信和转换是昂贵和受限的。
7.1 Java 语言的发展历史与应用
7.1.2 线程的概念
线程是轻量级实体,由寄存器、堆栈和某些数据组成。进程结构的其余部分由所有
的线程所共享:如地址空间、文件描述符等—— 它们共享相同的地址空间并且共同
分享同一个进程。线程间通信是便宜的,线程间的转换也是低成本的。
7.1 Java 语言的发展历史与应用
7.1.2 线程的概念
并发性(Concurrency )是两个或多个线程(或传统的进程)
可以同时在执行代码之中;可以是相同的代码,也可以是不
同的代码。这些线程可以一次执行,也可以多次执行,即一
个已开始执行但被中断,而另外一个已开始了。
但在给定的时间点上,只有一个在CPU 在处理一个线程。
7.1 Java 语言的发展历史与应用
7.1.2 线程的概念
并行性(Parallelism )是针对多处理器环境而言的,
是指两个或多个线程真正同时运行在不同的CPU 上。
在多处理器机上,很多不同的线程可以并行运行,
或者说是同时运行。
7.1 Java 语言的发展历史与应用
7.1.2 线程的概念
Java 语言在设计的初期就引入了多线程的概念
Java 程序开始运行时,Java 虚拟机生成一个新的线程,由
这个线程运行main() 方法,这个线程称为main 线程,main()
方法运行完毕返回后,main线程也随之消亡。
在main线程运行过程中,可以生成新线程,而新生成的线
程又可生成其他的线程。
而除main线程外,其他的线程的运行主体为线程所属对象
的run() 方法,随着run() 方法运行结束,该线程也会结束。
注意:main线程与程序的结束之间没有关系,即使main线程
很早就结束了,但只要程序中还有其他线程没有消亡,程序
就没有结束。
7.2 线程的创建
两种创建方式(继承Thread 和实现Runnable )
1. 通过直接扩展Thread 类来直接创建线程:
public class CountDownThread extends Thread
new CountDownThread(thread 1).start()
举例:CountDownThread.java
2. 通过设计一个类,使之实现java. lang. Runnable 接口,再
把该接口作为参数传递给Thread 类的构造方法后间接创建
线程:
public class CountDownTest implements Runnable
new Thread(CountDownTest(thread 1)).start()
举例:CountDownTest.java
7.2 线程的创建
两种创建方式的比较
* 如果我们并不改变线程本身的性质,仅覆盖run 方法,并没有增
加新的功能,因此将Thread 扩展子类并不恰当,这不太符合类扩
展规范,因此采用实现Runnable 方式。
* 如果实现Runnable接口,它使我们所设计的类可以扩展其它类型
而变得更为有用。
7.2 线程的创建
线程内容的定义
* 覆盖或实现run 方法…
*start 方法一般只用来触发线程,把线程的内容放在这个方法体中
不太规范,而且这样做实际上线程不会竞争运行。
* 如果直接调用run 方法,线程也不会竞争运行,必须通过start 方
法间接调用run 方法。
7.2 线程的创建
线程的生命周期
可运行状态
notify() 、
sleep()结束、
初
您可能关注的文档
- 网络安全原理与应用 戚文静 刘学 教学课件 第2章 网络体系结构及协议.pdf
- 网络操作系统(Windows Server 2003) 教学课件 王红 第13章.pdf
- 网络操作系统项目教程 教学课件 冯思泉 项目3 DNS服务器的配置与管理.pdf
- 网络操作系统项目教程 教学课件 冯思泉 项目4 应用程序服务器的配置于管理.pdf
- 网络分析与综合 教学课件 俎云霄 吕玉琴第九章 9-3 二阶基本节电路.pdf
- 网络分析与综合 教学课件 俎云霄 吕玉琴第三章 3-3 状态方程的系统列写法.pdf
- 网络分析与综合 教学课件 俎云霄 吕玉琴第三章 3-4 状态方程的时域解.pdf
- 网络工程 教学课件 赵小明 2.pdf
- Internet 实用教程 教学课件 张强华 吕新平 第六章.pdf
- 网络工程 教学课件 赵小明 5.pdf
- 浙江省温州市浙南名校联盟2025-2026学年高一上学期期中联考数学试题含解析.docx
- 26高考数学提分秘诀重难点34圆锥曲线中的定点、定值、定直线问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点35概率与统计的综合问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点31圆锥曲线中的切线与切点弦问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点30圆锥曲线中的弦长问题与长度和、差、商、积问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点29巧解圆锥曲线的离心率问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点28直线与圆的综合(举一反三专项训练)(全国通用)(含解析).docx
- 寡核苷酸药物重复给药毒性研究技术指南.docx
- 重组溶瘤腺病毒生产质量管理标准.docx
- 26高考数学提分秘诀重难点27直线与圆中常考的最值与范围问题(举一反三专项训练)(全国通用)(含解析).docx
原创力文档


文档评论(0)