`

黑马程序员-线程状态转换图

阅读更多

-------- android培训java培训、期待与您交流! ----------

 

线程状态转换图

 

1.新建:通过创建Thread类的一个实例对象(之后会一直称为此线程对象)并传入一个      Runnable接口的实现类象,创建并注册此线程(之后也会一直称为此线程)。


2.启动:通过调用此Thread对象的start方法,运行此Runnable对象(之后会一直称为此对象)的run方法,启动此线 程。


3.可运行状态:启动此线程后,此线程会参加排队,等待时间片调度。


4.运行状态:此线程获得时间片后,进入运行状态,在这期间可能会发生以下某种或多种情况:

4.1-本次时间片结束时此线程没有执行完毕,重新回到可运行状态;

4.2-通过此线程对象的yield方法,把时间片让给其他线程,重新回到可运行状态;

4.3-通过调用此线程对象的sleep方法,使该线程进入暂停(阻塞/等待)状态,在指定暂停时间内,如果有其他线程调用此线程对象的 interrunpt 方法,此线程会被中断唤醒,提前回到可运行状态。否则将在指定暂停时到达后再回到可运行状态;

4.4-通过调用此线程对象的 join 方法,此线程所处的当前线程会进入等待此线程执行完毕的暂停状态。当然在调用此线程对象的join方法时,可以指定当前线程的最长等待时间。在此期间当前线程一直处于暂停状态,如果没有其他线程通过调用此线程对象的interrupt方法中断唤醒此线程的话;

4.5-如果此线程参加了此对象的资源同步,且在要进入此对象的 synchronized 同步块内时,如果已有其他线程取得了此对象的监视器,那么,此线程对进入此对象的监视器等待集中。然后,此线程以常规方式与其他线程竞争,以获得在此对象上同步的权利(也就是获得此对象的监视器),一旦获得此对象的控制权(监视器),对此对象的同步声明都将恢复到以前的状态,此线程会回到可运行状态;


4.6-如果此线程参加了此对象的资源同步,在调用此对象的wait方法时,此线程进入此对象的等待集中,然后放弃对此对象上的所有控制权(交出此对象的监视器)。当然可以在调用此对象的wait 法时指定此线程等待的最长时间,在指定等待时间到达之前,或处于一直等待的状态的时候,如果其他某个拥有此对象监视器的线程调用此对象的 notify/notifyAll 方法,或被其他线程中断唤醒,此线程对进入此对象的监视器等待集中;

注意,此方法只应由作为此对象监视器的所有者的线程来调用。 

注:join/wait:如果指定时间为0,则一直等待下去。

sleep:如果指定时间为0,则不予考虑。


5.终止状态:如果此线程执行完毕,最终进入终止状态,且不能够再次启动。

 

------- android培训java培训、期待与您交流! ----------
详细请查看:http://edu.csdn.net/heima/  
0
12
分享到:
评论

相关推荐

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    黑马程序员入学面试题

    线程的状态包括新建、就绪、运行、阻塞和终止。 #### 37. 数组和集合 数组是固定长度的数据结构,而集合是动态调整大小的数据结构。 #### 38. String、StringBuffer和StringBuilder - `String`:不可变字符串,...

    中关村黑马程序员训练营android-4.0视频下载地址

    根据提供的信息,我们可以总结出以下关于“中关村黑马程序员训练营Android-4.0视频”的相关知识点: ### 一、概述 “中关村黑马程序员训练营Android-4.0视频”是一套针对Android开发初学者和进阶学习者的培训课程...

    黑马程序员Android视频教程

    ### 黑马程序员Android视频教程知识点解析 #### 一、Android基础概述 - **定义与特点**:Android是一种基于Linux内核(不包括GNU组件)的开源操作系统,主要用于移动设备。它由Google公司及其领导下的开放手机联盟...

    黑马程序员安卓 笔记代码(包含源码) 第76期

    【标题】"黑马程序员安卓 笔记代码(包含源码) 第76期" 提供的是安卓开发的相关学习资料,其中包含了源码,这通常意味着我们可以深入理解代码的实现细节和设计思路。作为第76期,这可能是一个长期系列教程的一部分...

    黑马程序员–Java多线程讲解笔记

    在多线程环境中,线程的状态会随着执行情况而相互转换。 同步是多线程编程中的一个重要概念,用于解决线程安全问题。Java提供了synchronized关键字来实现线程同步。同步的前提是至少有两个线程,且这些线程需要访问...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--多媒体应用设计图 |--多线程下载 |--多线程下载及断点续传 |--多线程之AsyncTask的用法 |--多线程之线程池ExecutorService |--字体为粗体 |--安卓下的多线程断点上传 |--对话框与进度条结合用法 |--屏幕之...

    黑马程序员Android入学考试题目(附详解)

    本篇将根据"黑马程序员Android入学考试"的题目,深入讲解相关知识点。 一、Android体系结构 1. Linux内核:Android系统基于Linux内核,提供了硬件驱动支持、内存管理、进程调度等功能。 2. HAL(Hardware ...

    黑马程序员 hibernate 2016版讲义和笔记(4天全)

    《Hibernate技术深度剖析——基于黑马程序员2016版讲义与笔记》 Hibernate,作为Java领域中的一个著名持久化框架,为开发者提供了强大的对象关系映射(ORM)功能,极大地简化了数据库操作。本资料集是黑马程序员...

    黑马程序员入学Java知识(精华总结)

    ### 黑马程序员入学Java知识(精华总结) #### 一、Java概述与基础知识 ##### 1、何为编程? 编程是指使用计算机语言来编写指令,这些指令被计算机执行以完成特定任务的过程。通过编程,我们可以控制计算机的行为...

    黑马程序员_2小时教你写一个安卓程序[第01天]课件源码

    在本课程中,“黑马程序员”将引导我们快速入门安卓应用程序的开发,这是一段为期两天的密集学习旅程,第01天的课程主要侧重于基础知识的建立和首个安卓程序的编写。通过这次学习,我们将了解到安卓开发环境的搭建、...

    黑马程序员入学Java知识——精华总结.doc

    程序员编写代码,计算机执行这些代码,最终产生预期的结果。 2. **Java语言的特点**: - **简单性**:Java简化了C++的一些复杂特性,如指针,使得初学者更容易上手。 - **面向对象**:Java强调类和对象,支持封装...

    2023黑马面试宝典-Java面试宝典大全-java面试宝典黑马

    理解线程状态转换图,掌握线程安全问题的解决方案,如volatile、ThreadLocal等,有助于在并发环境下编写高效稳定的代码。 5. **异常处理**:Java的异常处理机制是保障程序健壮性的重要部分,面试中会询问try-catch-...

    黑马程序员入学Java知识

    ### 黑马程序员入学Java知识 #### Java概述与基础知识 1. **何为编程?** - 编程是通过特定的计算机语言来编写指令,让计算机能够执行一系列任务的过程。 2. **Java语言概述,历史、特点** - Java是一种广泛...

    《Java编程基础》课后习题答案(原创)

    - **线程的创建与状态**:通过继承Thread类或实现Runnable接口创建线程,理解线程的生命周期。 - **同步机制**:synchronized关键字、wait()、notify()和notifyAll(),防止数据竞争问题。 - **线程池**:Executor...

    java讲义(入门基础)

    - 对象中封装了状态变量及其相关方法,实现了模块化和信息隐藏。 - 类提供了对象的原型,并通过继承机制使得子类可以使用父类提供的方法,实现了代码复用。 - 面向对象的主要特性包括继承、封装和多态。 2. **...

    2018最新版Java程序员面试宝典+题库

    这本书由"黑马程序员"机构出品,专门针对Java开发者在求职过程中的需求,帮助他们在面试中展现出扎实的技术功底。 1. **Java基础** - 类与对象:深入理解面向对象编程的基本概念,包括封装、继承、多态。 - 数据...

    Java面试宝典2018年5月最新版

    《Java面试宝典2018年5月最新版》是一部专门为Java开发者准备的面试指导书籍,由黑马程序员团队精心编纂,旨在帮助求职者掌握Java面试中的核心知识点,提高面试成功率。书中涵盖了2018年最热门、最重要的Java技术...

Global site tag (gtag.js) - Google Analytics