`
lilongping269
  • 浏览: 42518 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Java 线程的状态转换

 
阅读更多
线程可以分为4个状态:
New(新生),
Runnable(可运行):为了方便分析,还可将其分为:Runnable与Running。

blocked(被阻塞),

Dead(死亡)。

1,新生线程:

当你用new操作符创建一个线程时,例如用new Thread(r),线程还没有开始运行,此时线程处于新生状态;在线程运行之前,还有一些簿记工作要做。



2,可运行线程:

(a)Runnable:一旦调用了start方法,就进入到Runnable状态。

(b)Running:在到Runnable后,线程就有可能已经进入到了运行状态;根据操作系统所提供的服务,在抢占式调度的系统中,系统给每个运行的线程一个时间片来处理任务,而这个时间片用完后,操作系统将剥夺该线程的资源。这样,在Runnable与Running之间是可以相互转换的。所以从大的分类,这两个是可以合并的。



3,被阻塞线程:

(1),当线程通过调用sleep方法进入睡眠状态时。(类似的方法有yield(),join(),这些方法的使用在后面章节介绍)

(2),当线程通过调用wait方法时,进入阻塞。

(3),当线程调用的对象,试图得到这个对象的锁,而该锁已经被其他线程持有。

(4),等待I/O操作。

(5),还有已经过时的suspend方法。





而从被阻塞状态到可运行状态。

(1),sleep睡眠时间已过。

(2),在调用wai方法后,又通过notify或notifyAll方法唤醒。

(3),对象锁已经释放。

(4),I/O操作完成。

(5),对应过进的suspend对应的resume方法。



4,死线程

(1),因为run方法正常退出而自然死亡。

(2),因为一个未捕获的异常终止了run方法而使线程猝死。

(3),已经过时的stop方法。

分享到:
评论

相关推荐

    java线程状态转换图

    java线程状态之间的转换图,包含转换的一些条件

    Java线程状态转换.pdf

    Java线程状态转换.pdf 学习资料 复习资料 教学资源

    Java线程状态转换关系实例解析

    主要介绍了Java线程状态转换关系实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java线程状态流转图

    Java线程状态流转图

    Java线程:线程状态的转换

    初学者学习java多线程的必备良师啊!...内容包含:线程的状态及状态之间的转换 线程的优先级 线程的几大常用方法! 申明: 本文出自 “熔 岩” 博客,本人从百度文库转载而来! 大家都尊重一下 作者的版权!

    java多线程编程总结

    Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 Java线程:线程的调度-让步 Java线程:线程的调度-合并 Java线程:线程的调度-...

    Java-多线程线程状态转换图

    多线程线程状态转换图

    Java线程:线程状态的转换.pdf

    Java线程:线程状态的转换.pdf

    Java多线程编程总结

    Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 Java线程:线程的调度-让步 Java线程:线程的调度-合并 Java线程:线程的...

    Java线程:线程状态的转换[参考].pdf

    Java线程:线程状态的转换[参考].pdf

    java多线程笔记

    四、线程的状态转换和生命周期 4 Java线程:创建与启动 7 Java线程:线程名称的设定及获取 10 Java线程:线程栈模型与线程的变量 12 Java线程:线程的调度-休眠 13 Java线程:线程的调度-优先级 16 Java线程:线程的...

    Java 线程总结

    Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 Java线程:线程的调度-让步 Java线程:线程的调度-合并 Java线程:线程的调度-...

    java线程详解

    Java线程:线程状态的转换 Java线程:线程的同步与锁 一、同步问题提出 二、同步和锁定 三、静态方法同步 四、如果线程不能不能获得锁会怎么样 五、何时需要同步 六、线程安全类 七、线程死锁 八、线程同步...

    在java中的线程的转换图

    在java中的线程转换的总描述,结合了所有的java有关线程的状态转移图

    samjustin8231#JavaGuide#线程状态和基本操作1

    创建线程Java创建线程的四种方式线程状态转换当一个线程执行了start方法后,不代表这个线程就会立即被执行,只代表这个线程处于可运行的状态,最终由OS的线程调

    java并发编程:线程基础

    探讨线程在不同状态间的转换和原因。 线程的优先级和命名: 介绍线程的优先级概念,解释如何设置线程的优先级。讲解线程命名的重要性以及如何为线程设置有意义的名称。 线程的同步与阻塞: 引入多线程访问共享资源...

    Java多线程技术 线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口

    本文首先介绍了线程的有关概念,接着介绍了线程的生命期及其状态间的转换,多线程的调度 原则,线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口

Global site tag (gtag.js) - Google Analytics