- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 多线程 多线程编程技术是Java语言的特色之一。多线程编程的含义是将程序任务分成几个可以并行执行的子任务,分别由多个不同的线程来执行。采用多线程技术提高了程序执行的效率。 第10章 多线程 10.1线程的相关概念 10.2线程的生命周期 10.3Java中多线程的实现 10.4线程的同步 10.5线程的调度 10.6 多线程之间的通信 10.1线程的相关概念 程序、进程与线程 程序是静止的指令集合,由程序员编写而成,实现一些特定的功能。它是一个静态的概念,程序不占用系统的运行时资源。 进程是程序的一个运行实例。当运行程序时,便产生了一个进程。进程对系统资源是占用和释放的关系,当开始一个进程时,为之分配相应的内存、文件等资源;进程终止时,在它生命期中创建的各种资源将被清除。 程序、进程与线程 线程是进程中的一个实体,用来描述进程的执行,它负责执行包含在进程的地址空间中的代码。实际上,一个进程可以包含几个线程, 它们可以同时执行进程的地址空间中的代码。 线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,它可与同属一个进程的其它线程共享进程所拥有的全部资源。 10.1线程的相关概念 多线程 多线程方式是指在一个程序中存在多个线程,每一个线程执行一个独立的任务,多个线程可以并发执行。 作为一种多线程编程语言,Java 编程语言已将对多线程的支持与语言本身合为一体,对多线程提供了强健的支持。 10.2线程的生命周期 线程的生命周期 新建状态(new Thread) 就绪状态(Runnable) 运行状态(Running) 阻塞状态(Blocked) 消亡状态(Dead) 10.3Java中多线程的实现 Java中实现多线程主要采用以下两种方法: 生成java.lang.Thread类的子类,在新类中覆盖Thread类的run方法。 生成实现java.lang.Runnable接口的类,并将其实例与java.lang.Thread实例相关联。 Thread类 Thread类是java.lang包中的类,它包含了对线程操作的基本方法 。 Thread类是负责向其它类提供线程支持的最重要的类,要使一个类具有多线程功能,在Java中只要简单地从Thread类派生一个子类就可以了。 Thread类 1.Thread类中的构造方法 ? Thread() 创建一个新的线程对象。 ? Thread (String name) 创建一个新的线程对象,并为线程对象命名为参数name的值。 ? Thread(Runnable target) 创建一个新的线程对象,并以参数target为运行对象。即线程运行时,执行target的run方法。如果对象target为空,则执行Thread类中的run方法。 ? Thread(Runnable target,String name) 创建一个新的线程对象,并为线程对象命名为参数name的值,以参数target为运行对象。 Thread类 1.Thread类中的静态方法 ? public static boolean interrupted() 返回当前运行线程是否被中断,如果是,则返回布尔值true,否则返回false。 ? public static void sleep(long millis) 使当前正在运行的线程临时停止,睡眠参数millis指定的时间后继续运行。参数millis的时间单位是微秒。 ? public static void sleep(long millis,int nanos) 使当前正在运行的线程临时停止,睡眠参数millis与参数nanos的和指定的时间后继续运行。其中,参数millis的时间单位是微秒,参数manos的时间单位是十亿分之一秒。 ? public static void yield() 临时暂停当前正在执行的线程对象,从而使其它线程能够执行。 Thread类 3.其他方法 ? public final String toString() 返回该线程对象的描述信息,包括线程的名字、优先级,和所属的线程组。 ? public String getName() 返回该线程的名字。 ? public void setName(String name) 将该线程命名为参数name指定的名字。 ? public int getPriority() 返回线程对象的优先级。 ? public int setPriority(int newPriority) 设置线程对象的优先级为参数newPriority指定的值。 ? public void interrupt() 中断该线程。 Thread类 public
您可能关注的文档
最近下载
- 丽声指南针英语名著分级读物Little Red Riding Hood小红帽 教学设计.docx
- 中华人民共和国第十四届运动会游泳比赛成绩册(编排系统版).pdf
- 数字温度计设计论文分析.doc
- 国开(河北)2024年《中外政治思想史》形成性考核1-4答案.docx
- 陕西中考数学第二轮复习策略讲座.ppt
- 东北三省四城市联考暨沈阳市高三质量监测(二)英语含答案解析.docx
- 中国肝癌规范诊疗质量控制指标(2022版).pptx
- 部编人教版八年级下册语文期中考试试卷及答案.docx VIP
- 山东省青岛市市南区2022-2023学年八年级下学期期末物理试卷(含答案).docx VIP
- 财务年度审计服务项目公开招投标书范本.doc VIP
文档评论(0)