- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章多线程分析
计算机科学与技术学院 张海涛 1、线程的概念: 一个线程是一个程序内部的顺序控制流。线程本身不能独立运行,只能在某个程序之中运行。下图显示这种关系: 2、多线程的概念: 在单个程序中同时运行多个线程完成不同的工作,称为多线程。如下图所示: 线程的优先级与分类 每一个线程都会分配一个优先级,优先级越高,系统优先调度执行。 Java将线程的优先级分为10个等级,用数字1~10表示,数字越大优先级越高,默认的优先级是居中,即为5。 线程分为两类,用户线程和守护线程(Daemon,也叫后台线程),守护线程具有最低的优先级 10.1.2 线程的优先级与分类 每一个线程都会分配一个优先级,优先级越高,系统优先调度执行。Java将线程的优先级分为10个等级,用数字1~10表示,数字越大优先级越高,默认的优先级是居中,即为5。 线程分为两类,用户线程和守护线程(Daemon,也叫后台线程),守护线程具有最低的优先级 大多数现代的操作系统都支持线程 第一个在语言本身中显性地包含线程的主流编程语言 没有把线程化看作是底层操作系统的工具 每个 Java 程序都至少有一个线程—主线程 当一个 Java 程序启动时,JVM 会创建主线程,并在该线程中调用程序的main()方法 JVM还创建其它线程,如垃圾收集(garbage collection) 多线程意味一个程序的多行语句同时执行,但多线程并不等于多次启动一个程序,操作系统不会把每个线程当作独立的进程来对待。 线程是进程中一个“单一的连续控制流程” (a single sequential flow of control)/执行路径 一个进程可拥有多个并行的(concurrent)线程 一个进程中的线程共享相同的内存单元/内存地址空间?可以访问相同的变量和对象,而且它们从同一堆中分配对象?通信、数据交换、同步操作 轻量级进程(lightweight process) 进程(Process) 程序(Program)的一次动态执行过程, 占用特定的地址空间 在某种程度上相互隔离的、独立运行的程序 多任务(Multitasking)操作系统?将CPU时间动态地划分给每个进程,操作系统同时执行多个进程,每个进程独立运行 进程的查看 Windows系统: Ctrl+Alt+Del 两者是两个不同层次上的概念。 进程是由操作系统来管理的 线程是在一个程序(进程)内。 不同进程的代码、内部数据和状态都是完全独立的 一个程序内的多线程是共享同一块内存空间和同一组系统资源,可能互相影响。 线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。 10.1.3 线程的生命周期 一个具有生命的线程,总是处于这五种状态之一. 10.2.1 Thread线程类 1、构造方法 Thread类的构造方法很多,主要包括: n Thread(); n Thread(Runnable target); Thread(Runnable target,String name); Thread(String name); 10.2.1 Thread线程类 2、主要方法 n int activeCount() //返回当前活动线程数 n Thread currentThread() //返回当前运行的线程 n String getName() //返回线程的名字 destroy() //破坏线程,但不进行清理 int getPriority() //返回线程的优先级 ThreadGroup get ThreadGroup() //返回线程组名 10.2.2 线程的创建 1、继承Thread类创建线程 从Thread类派生一个类,并覆盖Thread类中的run方法 创建该子类的对象 调用start方法启动本线程 10.2.2 线程的创建 2、实现Runnable接口 接口类Runnable只有一个方法run(),传递一个实现Runnable接口的类对象,这样创建的线程调用实现Runnable接口的类对象中的run()方法作为其运行代码,不再调用Thread类的run()方法。 方法run()由系统自动调度,即通过start()方法,而不能由程序调用 10.3.1 synchronized同步方法 通过在方法声明中加入synchronized关键字可以声明同步方法。如: public synchronized void fetchMoney(){ synchronized(this){ …} } 为保证共享对象的正确性,Java语言中,
您可能关注的文档
- 第10章_接地装置分析.ppt
- 第10章《自测题、习题》参考答案分析.doc
- 第10章_框架—剪力墙结构分析.ppt
- 第10章代码优化和目标代码生成分析.ppt
- 第10章单片机键盘显示器接口分析.ppt
- 第10章可编程逻辑器件分析.ppt
- 第10章含有耦合电感的电路(4h)v4分析.ppt
- 第10章导体和电介质中的静电场分析.ppt
- 第10章工程项目成本管理分析.ppt
- 第10章__建筑灭火设备分析.ppt
- 2026版创新设计高考总复习地理中图版教师用-第58课时 交通运输与区域社会经济发展.docx
- 2026版创新设计高考总复习地理中图版教师用-第71课时 南水北调对区域发展的影响.docx
- 2026版创新设计高考总复习地理中图版教师用-第81课时 环境保护与国家安全.docx
- 2026版创新设计高考总复习地理中图版教师用-第77课时 海洋空间资源与国家安全.docx
- 2026版创新设计高考总复习地理中图版教师用-第72课时 黄河流域内部协作.docx
- 教育硕士考前冲刺练习含答案详解【达标题】.docx
- 教育硕士经典例题附答案详解【考试直接用】.docx
- 教育硕士综合提升测试卷附参考答案详解(完整版).docx
- 教育硕士题库附参考答案详解【黄金题型】.docx
- 教育硕士预测复习最新附答案详解.docx
最近下载
- 《质量评估流程》课件.ppt VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- 2024年数智工程师职业鉴定考试复习题库(含答案).docx VIP
- (完整版)建筑施工技术交底范本(大全) .pdf VIP
- 水运工程大体积混凝土温度裂缝控制技术规范_JTS-T 202-1-2022.pdf
- 设备供货、安装、调试、验收方案.docx VIP
- 《水利水电工程施工图审查技术导则》.pdf VIP
- 《木材学》——李坚 木材学笔记(完整).doc VIP
- 《公路水泥混凝土路面施工技术规范》_(JTGF30-2015).pdf VIP
- 小学生数学学习自查习惯现状调查报告.pdf VIP
文档评论(0)