- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线程具有以下属性。 轻型实体 独立调度和分派的基本单位。 可并发执行。 共享进程资源。 (3)线程的状态 线程在其生命周期中经历着状态的变化,线程状态包括5种:新建、就绪、运行、等待(阻塞)、终止。 (4)进程与线程的区别 地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。 通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信,该操作需要进程同步和互斥手段的辅助,以保证数据的一致性。 调度和切换:线程上下文切换比进程上下文切换要快得多。 在多线程OS中,进程不是一个可执行的实体。 8.2 Java的线程对象 Java支持内置的多线程机制,在Java中要想实现多线程代码有两种手段:一种是继承Thread类,另一种就是实现Runnable接口。 9.2.1 Runnable接口与Thread类 9.2.2 线程对象的声生命周期 8.2.1 Runnable接口与Thread类 (1)Runnable接口 Runnable接口中声明了一个run方法 Public interface Runnable { public abstract void run(); //描述线程操作的线程体 } Runnable接口中的run方法只是一个未实现的方法。一个线程对象必须实现run方法完成线程的所有活动,已实现的run方法称为该对象的线程体。 任何实现Runnable接口的对象都可以作为一个线程的目标对象。 (2)Thread线程类 Thread类将Runnable接口中的run方法实现为空方法,并定义许多用于创建和控制线程的方法。部分声明如下: public class Thread extends Object implements Runnable 构造方法: public Thread( ) public Thread(String name) public Thread(Runnable target) public Thread(Runnable target,String name) public Thread(ThreadGroup group,Runnable target) public Thread(ThreadGroup group,String name) public Thread(ThreadGroup group,Runnable target,String name) (3)两种创建线程方式的比较 继承线程Thread类 声明一个线程类继承Thread类,并且覆盖Threa类的run()方法,说明线程对象所执行的操作。这种方式的优点是,Thread类的子类对象就是线程对象,具有Thread类声明的方法且具有线程体。缺点是,不适合多重继承。 实现Runnable接口 当一个类已继承一个父类,还要以线程方式运行时,就需要实现Runnable接口。一个实现Runnable接口的对象本身不是线程对象,它作为一个线程对象的目标对象使用,因此,使用时需要声明一个Thread线程对象。基于一个目标对象创建多个线程对象,可以实现资源的共享。 由此可见,实现Runnable接口相对于继承Thread类来说,有如下显著的优势: 适合多个相同程序代码的线程去处理同一资源的情况。 可以避免由于Java的单继承特性带来的局限。 增强了程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。 8.2.2 线程对象的声生命周期 线程的状态表示线程正在进行的活动以及在此时间段内所能完成的任务。线程有创建、就绪、运行中、阻塞(等待)、终止(死亡)五中状态。一个具有生命的线程,总是处于这五种状态之一。 (1)线程的状态 创建状态 就绪状态 运行中状态 阻塞状态 终止状态 (2)线程的调度与优先级 线程的优先级用1~10表示,10表示优先级最高,默认值是5。每个优先级对应一个Thread类的公用静态常量。如: public static final int NORM_PRIORITY=5 //默认优先级 public static final int MIN_PRIORITY=1 //最低优先级 public static final int MAX_PRIORITY=10 //最高优先级 (3)线程状态的改变 线程睡眠sleep( ) 暂停线程 yield( ) 连接线程join() 中断线程interrupt() 8.3 线程的同步机制 8.3.1 共享数据的线程“互斥“锁定 8.3
您可能关注的文档
- Java编程与应用教程 张莉 java_13新.ppt
- Java编程与应用教程 张莉 java_15新.ppt
- Java程序设计 第二版 朱喜福2 1 第1章 Java语言基础新.ppt
- Java程序设计 第二版 朱喜福2 1 第2章 使用Java解决简单的问题新.ppt
- Java程序设计 第二版 朱喜福2 1 第3章 类、类的继承和接口新.ppt
- Java程序设计 第二版 朱喜福2 1 第4章 Java类库简介和数据结构类使用新.ppt
- Java程序设计 第二版 朱喜福2 1 第5章 异常和多线程新.ppt
- Java程序设计 第二版 朱喜福2 1 第6章 Java的输入输出流新.ppt
- Java程序设计 第二版 朱喜福2 1 第7章 Java的图形与用户界面新.ppt
- Java程序设计 第二版 朱喜福2 第2章 使用Java解决简单的问题新.ppt
- Java程序设计实验指导与习题解答 工业和信息化普通高等教育“十二五”规划教材 李荣 段新娥 chap9新.ppt
- Java程序设计实验指导与习题解答 工业和信息化普通高等教育“十二五”规划教材 李荣 段新娥 chap10新.ppt
- Java程序设计实验指导与习题解答 工业和信息化普通高等教育“十二五”规划教材 李荣 段新娥 chap11新.ppt
- Java程序设计实用教程 耿祥义 张跃平 Java程序设计实用教程_第1章_初识Java新.ppt
- Java程序设计实用教程 耿祥义 张跃平 Java程序设计实用教程_第2章_初识对象和简单数据类型新.ppt
- Java程序设计实用教程 耿祥义 张跃平 Java程序设计实用教程_第3章_运算符、表达式和语句新.ppt
- Java程序设计实用教程 耿祥义 张跃平 Java程序设计实用教程_第4章_类 与 对 象新.ppt
- Java程序设计实用教程 耿祥义 张跃平 Java程序设计实用教程_第6章_接口与多态新.ppt
- Java程序设计实用教程 耿祥义 张跃平 Java程序设计实用教程_第7章_数组与枚举新.ppt
- Java程序设计实用教程 耿祥义 张跃平 Java程序设计实用教程_第10章_输入、输出流新.ppt
文档评论(0)