- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                计算机与信息技术学院 Java工程师系列 Java语言  程序设计 Java 语言 程序设计 主讲教师:           计算机与信息技术学院                            8    多线程		 8.0 本章内容 线程的概念 线程的创建 Thread类和多线程实例 线程的状态与控制 线程同步  线程通信  在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187     或者直接输入下面地址:    8.1  线程的概念 JAVA在语言级支持多线程,NOT  OS。 分析一个涉及多个方法调用的程序的执行过程,了解一条执行线索. 思考:一个服务器端程序如何处理多个客户端的请求? 什么是线程?程序? 程序:静态的代码.(*.java) 进程:程序的动态执行过程. 线程是一个程序内的顺序控制流,使得一个程序具有能够“同时”执行多个任务的能力。  示例TestThread1.java 思考:与将循环语句写在main()方法中有什么区别?   8.1  线程的概念 线程与进程(近一步理解) 每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大,不同进程间交换数据困难。 线程: 轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。 多进程: 在操作系统中能同时运行多个任务(程序)。 多线程: 在同一应用程序中有多个顺序流同时执行。  线程可以理解为比进程更小的的程序单元。都具有并发执行多任务的能力,线程包含在进程内 线程(Thread),也称执行上下文(Execution Context)包括: 虚拟CPU 线程体(Code) 线程数据(Data) 8.1  线程的概念---  线程模型 Java线程模型 代 码 数  据 虚拟CPU 8.2  线程的创建 Java使用Thread类描述线程对象,该类定义在java.lang包中。虚拟的CPU,由其封装。 在创建Thread对象的时候,一定要将线程体代码“提交”给线程对象。这可以从线程类构造器看出来。 Runnable接口(服务对象和客户对象之间的契约关系):只要某个对象提供了Runnable接口的实现,就可以提交给线程对象。由线程执行该接口中封装的方法:public void run(); Example CreateThread.java(涉及多种创建线程的方法) CreateThreadbyRunnable(多核) 简单线程模型/多线程模型  两种创建线程方法的比较 使用Runnable接口 	可以将Thread类与所要处理的任务(CPU,代码和数据)分开,形成清晰的模型; 	还可以从其他类继承; 	保持程序风格的一致性。 直接继承Thread类 	不能再从其他类继承; 	编写简单,可以直接操纵线程,无需使用Thread.currentThread()获得当前线程。  	示例:CreateThreadbyExtendsTh. java  8.3  Thread类和多线程实例 8.4  线程控制及线程状态 线程控制: 启动,start方法。 终止,正常结束及stop方法。 挂起和恢复,suspend和resume方法。 睡眠,sleep方法。 释放执行权,yield方法。 join方法 8.4  线程控制及线程状态(续) 状态描述  线程控制示例 一个模拟的计时器。 线程创建时,指定计时时间为30秒;线程运行时,每隔5秒输出一次剩余时间。 Timer1.java 通过标记变量来结束线程。 线程通过shutDown()方法将变量flag置为false来结束线程。也可以使用errupt()或t.stop()方法强制结束线程,但不推荐使用。 ThreadtInterruptedByFlag.java  8.4  线程控制及线程状态(续) 使用join()方法合并线程  一个线程调用另一个线程的join()方法可以使自已暂停运行,直至另一个线程停止,好像将两个并行执行的线程合并为一个线程。 TestJoin.java  使用yield()方法切换线程。 该方法使当前执行线程放弃CPU进入就绪状态,这样,线程调度程序可以重新分配CPU。这里存在两种情况。如果没有其他可运行的线程,该方法不起任何作用。如果有其他多个就绪线程存在,具体执行哪个线程要由具体的线程调度程序来确定. TestYIeld.java 8.4  线程控制及线程状态(续) 线程的优先级 在Java中,线程的优先级是用数字1~10来表示的,并且在Thread类中定义了3个常量。 ·static int NORM_PRIORITY=5;  ·static int MAX_PRIORITY=10; ·stati
                您可能关注的文档
- EDA技术与应用 作者陈新华 第2章.ppt
- EDA技术与应用 作者陈新华 第6章.ppt
- Flash8动画设计实例教程 作者 鲍雷 flash8动画设计实例教程 第一章.ppt
- Flash动画实用技术 作者 刘彦武 刘玉山 第2章 Flash动画基础.ppt
- Flash动画实用技术 作者 刘彦武 刘玉山 第4章 引导线动画.ppt
- Flash动画实用技术 作者 刘彦武 刘玉山 第5章 Flash的元件.ppt
- Flash动画实用技术 作者 刘彦武 刘玉山 第6章 Flash动作脚本基础.ppt
- Flash动画实用技术 作者 刘彦武 刘玉山 第7章 Flash中的声音和视频.ppt
- Flash动画实用技术 作者 刘彦武 刘玉山 第8章 组件、模板.ppt
- Flash动画制作 作者 江华伟 郑东营 Flash动画制作1--Flash操作基础.ppt
- Java程序设计学习指导与习题解答 作者 金百东 刘德山 刘丹 11 网络多媒体和数据库编程.ppt
- Java程序设计与实践教程 作者 张诚洁 梁海丽 单元1Java程序的编写和运行.ppt
- Java程序设计与实践教程 作者 张诚洁 梁海丽 单元2Java程序开发的基础语法.ppt
- Java程序设计与实践教程 作者 张诚洁 梁海丽 单元4Java常用的类.ppt
- Java程序设计与实践教程 作者 张诚洁 梁海丽 单元7 Java的数据库访问.ppt
- Java程序设计与实践教程 作者 张诚洁 梁海丽 单元8输入输出流.ppt
- JSP应用开发教程 作者 温超 第2章 JSP开发环境.ppt
- JSP应用开发教程 作者 温超 第4章 Java面向对象.ppt
- JSP应用开发教程 作者 温超 第6章 JSP数据库开发.ppt
- JSP应用开发教程 作者 温超 第7章 Servlet编程.ppt
最近下载
- HG/T 2431-2018- 水处理剂_阻垢缓蚀剂Ⅲ.pdf VIP
- 上海市青浦XX中学高三下学期期中考试历史试卷.docx VIP
- 关于进一步加强“安全生产基础台账”管理工作的通知.pdf VIP
- 2024-2025学年湖南机电职业技术学院单招《职业适应性测试》复习提分资料(培优)附答案详解.docx VIP
- 2025下半年浙江绍兴市公安局警务辅助人员招聘55人笔试备考题库及答案解析.docx VIP
- 山宇SY8000变频器说明书用户手册.pdf
- 贝加莱(B&R)PLC_CF卡烧写说明PVI.docx VIP
- 电子信息工程应届生工作简历模板PPT.pptx VIP
- 上海市进才中学2024-2025学年高三上英语9月月考(含答案).docx VIP
- 年处理2000吨桑叶提取车间布置设计常晓利.docx VIP
 原创力文档
原创力文档 
                        

文档评论(0)