码迷,mamicode.com
首页 > 编程语言 > 详细

多线程基础之线程的生命周期

时间:2018-07-10 23:39:38      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:run   执行   方法   无限   running   .com   thread   运行   异常   

一个java线程从启动到结束运行,可能经历若干状态。

    技术分享图片

    NEW:一个已创建而未启动的线程处于该状态,由于一个线程只启动一次,所以只有一次处于该状态。

    RUNNABLE:该状态是一个复合状态。包括READY和RUNNING。前者表示该线程处于可以被线程调度器调度成RUNNING状态。后者表示该线程的run方法正在被

  jvm虚拟机调用,通过yeild方法可以变为READY状态。

    BLOCKED:一个线程发起一个阻塞式I/O操作后,或者被其它线程独占资源(比如锁),相应的线程会处于该状态,当线程重新获得资源后,又可以变为RUNNABLE.

    WAITING : 一个线程执行了某些方法后就会处于这种等待状态。包括Object.wait(),Thread.join(),LockSupport.park(Object).从WAITING变为RUNNABLE,Object.notify(),

/notifyAll()和LockSupport.unPart(Object).

    TIMED_WATING : 不是无限期等待,带有时间限制,时间限制一到,不管如何,自动转为RUNNABLE

    TERMINATED: Thread.run()正常返回或抛出异常提前终止都会处于这个状态,只会保持一次,由于一个线程只启动一次

 

多线程基础之线程的生命周期

标签:run   执行   方法   无限   running   .com   thread   运行   异常   

原文地址:https://www.cnblogs.com/goxcheer/p/9291890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!