Java线程知识深入解析[定义].pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Java 线程知识深入解析 Java 线程知识深入解析是一种重要的组成部分之一,在 Java 中,任何一个 Applet 的 paint() 和 update() 方法都是由 AWT(Abstract Window Toolkit) 绘图与事件处理线程调用的,而 Applet 主要的里程碑方法—— init()、start()、stop() 和 destroy() ——是由执行该 Applet 的应用调用的。 一、线程的定义 线程是“进程”中的某个单一顺序的控制流。新兴的操作系统,如 Mac、Windows NT、Windows 95 等,大多采用多线程的概念,把线程视为基本执行单位。线程也是 Java 中的相当重要的组成部分之一。 二、线程的属性 为了正确有效地使用线程,必须理解线程的各个方面并了解 Java 实时系统。必须知道如何提供线程体、线程的生命周期、实时系统如何调度线程、线程组、什么是幽灵线程 (Demo nThread)。 1. 线程体 线程体所有的操作都发生在线程体中,在 Java 中线程体是从 Thread 类继承的 run() 方法,或实现 Runnable 接口的类中的 run() 方法。当线程产生并初始化后,实时系统调用它的 run() 方法。run() 方法内的代码实现所产生线程的行为,它是线程的主要部分。 2. 线程状态 线程状态附图表示了线程在它的生命周期内的任何时刻所能处的状态以及引起状态改变的方法。以下讨论有关线程生命周期以此为据: * 新线程态 (New Thread):产生一个 Thread 对象就生成一个新线程。当线程处于“新线程”状态时,只是空线程对象,它还没有分配到系统资源。因此只能启动或终止它。任何其他操作都会引发异常。 * 可运行态 (Runnable):start() 方法产生运行线程所必须的资源,调度线程执行,并且调用线程的 run() 方法。在这时线程处于可运行态。该状态不称为运行态是因为这时的线程并不总是一直占用处理机。 * 非运行态 (Not Runnable):当以下事件发生时,线程进入非运行态。 + suspend() 方法被调用; + sleep() 方法被调用; + 线程使用 wait() 来等待条件变量; + 线程处于 I/O 等待 * 死亡态 (Dead):当 run() 方法返回,或者别的线程调用 stop() 方法,线程进入死亡态。通常 Applet 使用它的 stop() 方法来终止它产生的所有线程。 三、线程优先级 虽然我们说线程是并发运行的。然而事实常常并非如此。正如前面谈到的,当系统中只有一个 CPU 时,以某种顺序在单 CPU 情况下执行多线程被称为调度 (scheduling)。Java 采用的是一种简单、固定的调度法,即固定优先级调度。这种算法是根据处于可运行态线程的相对优先级来实行调度。当线程产生时,它继承原线程的优先级。在需要时可对优先级进行修改。在任何时刻,如果有多条线程等待运行,系统选择优先级最高的可运行线程运行。只有当它停止、自动放弃、或由于某种原因成为非运行态低优先级的线程才能运行。如果两个线程具有相同的优先级,它们将被交替地运行。 四、幽灵线程 任何一个 Java 线程都能成为幽灵线程。它是作为运行于同一个进程内的对象和线程的服务提供者。例如,HotJava 浏览器有一个称为“后台图片阅读器”的幽灵线程,它为需要图片的对象和线程从文件系统或网络读入图片。幽灵线程是应用中典型的独特组件。 Java 线程知识深入解析是 Java 编程中非常重要的一部分,了解线程的定义、属性、状态、优先级和幽灵线程对 Java 编程的帮助很大。
- 粉丝: 3
- 资源: 11万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助