- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十五章 线程 本章目标 1.线程基础 线程的概念模型 创建线程两种方式 后台线程 GUI线程 2.线程控制 线程状态 线程优先级 线程串行化 线程休眠 线程让步 线程挂起和恢复 本章目标 4 多线程编程专题 线程间数据传输 类同步性与线程安全 定时器 3 线程的同步 临界资源问题 互斥锁 死锁 线程同步通讯 生产者-消费者问题 什么是线程 线程是一个程序内部的顺序控制流。 线程和进程 每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大。 线程: 轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。 多进程: 在操作系统中能同时运行多个任务(程序) 多线程:在同一应用程序中有多个顺序流同时执行 线程的概念模型 1. 虚拟的CPU,由java.lang.Thread类封装和虚拟; 2. CPU所执行的代码,传递给Thread类对象; 3. CPU所处理的数据,传递给Thread类对象。 创建线程 Java的线程是通过java.lang.Thread类来实现的。 每个线程都是通过某个特定Thread对象所对应的方法run( )来完成其操作的,方法run( )称为线程体。 多线程 Java中引入线程机制的目的在于实现多线程(Multi-Thread) 多线程共享代码和数据 多线程之间可以共享代码和数据。 Runner2 r = new Runner2(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); 线程 虚拟CPU 代码 数据 t1 Thread类对象t1 Runner2类中的run方法 Runner类型对象r t2 Thread类对象t2 Runner2类中的run方法 Runner类型对象r 创建线程第二种方式 直接继承Thread类创建线程 两种方式比较 一. 使用Runnable接口创建线程: 可以将CPU、代码和数据分开,形成清晰的模型; 线程体run()方法所在的类还可以从其他类继承一些有用的属性或方法; 并有利于保持程序风格的一致性。 二. 直接继承Thread类创建线程: Thread子类无法再从其他类继承 编写简单,run()方法的当前对象就是线程对象,可直接操纵。 后台线程 相关基本概念: 后台处理(Background Processing) 后台线程(Background Thread / DaemonThread) 用户线程(User Thread) 主线程(Main Thread) 子线程(Sub Thread) Thread类提供的相关方法: public final boolean isDaemon() public final void setDaemon(Boolean on) GUI线程 GUI程序运行过程中系统会自动创建若干GUI线程 常见GUI线程: AWT-Windows线程 AWT-EventQueue-n线程 AWT-Shutdown线程 GUI线程展示 线程生命周期 线程的生命周期 新建状态 就绪状态 运行状态 阻塞状态 终止状态 挂起 新线程(新建) 就绪 运行 死亡 睡眠 等待 阻塞 线程优先级 线程的优先级用数字来表示,范围从1到10。 主线程的缺省优先级是5,子线程的优先级默认与其父线程相同。 Thread类提供的相关方法: public final int getPriority(); public final void setPriority(int newPriority) 相关静态整型常量: Thread.MIN_PRIORITY = 1 Thread.MAX_PRIORITY = 10 Thread.NORM_PRIORITY = 5 线程串行化 在多线程程序中,如果在一个线程运行的过程中要用到另一个线程的运行结果,则可进行线程的串型化处理。 Thread类提供的相关方法: public final void join() public final void join(long millis) public final void join(long millis,int nanos) 线程休眠 线程休眠——暂停执行当前运行中的线程,使之进入阻塞状态,待经过指定的“延迟时间”后再醒来并转入到就绪状态。 Thread类提供的相关方法: public static void sleep(long millis) public static void sleep(long millis, int nanos) 线程让步 线程让步——让运行中的线
您可能关注的文档
- 《C++程序设计》学习笔记总结 - 第八章 文件操作.docx
- 《C++程序设计》学习笔记总结 - 第二章 面向对象的基本概念.docx
- 《C++程序设计》学习笔记总结 - 第九章 函数模板与类模板.docx
- 《C++程序设计》学习笔记总结 - 第六章 多态与虛函数.docx
- 《C++程序设计》学习笔记总结 - 第七章 输入输出流.docx
- 《C++程序设计》学习笔记总结 - 第三章 类和对象进阶.docx
- 《C++程序设计》学习笔记总结 - 第四章 运算符重载.docx
- 《C++程序设计》学习笔记总结 - 第五章 类的继承与派生.docx
- 《C++程序设计》学习笔记总结 - 第一章 C++语言简介.docx
- 《计机算网络原理》学习笔记总结 - 第八章 网络安全基础.docx
最近下载
- 多层住宅小区工程监理规划.docx VIP
- NY_T 3213-2023 植保无人驾驶航空器 质量评价技术规范.docx VIP
- 盘扣式悬挑脚手架施工方案施工计划.doc VIP
- 部编版小学一年级语文上册表格式教案全册.doc VIP
- 电线电缆抗张强度检测结果的测量不确定度评定.doc VIP
- (正式版)H-G-T 22820-2024 化工安全仪表系统工程设计规范.docx VIP
- 绘本故事PPT课件之我好害怕.pptx
- 广东省惠州市博罗县泰美镇城镇总体规划项目建议书.doc VIP
- 虚拟仪器及LabVIEW知到智慧树期末考试答案题库2025年山东科技大学.docx VIP
- 2025年全国Ⅰ卷英语听力评析和听力材料二次开发(课件).pptx
文档评论(0)