Java中线程的生命周期-图解

Java中线程的生命周期-图解
  • 线程的生命周期:当一个线程被创建之后,进入新建状态,JVM则给他分配内存空间,并进行初始化操作。当线程对象调用了start()方法,该线程就处于就绪状态(可执行状态),JVM会为其创建方法调用栈、和程序计数器,处于可执行状态下的线程随时可以被cpu调度执行。CPU执行该线程的时候,该线程进入执行状态。执行过程中,该线程遇倒像wait()等待阻塞、以及synchronized锁同步阻塞或者调用线程的sleep()方法等进入一个阻塞状态,阻塞之后通过notify()或者notifyAll()方法唤醒重新获取对象锁之后再行进入就绪状态,等待cpu执行进去执行状态、当线程执行完或者return则线程正常结束,如果发生处理的运行时异常,则线程因为异常而结束。
1.线程被创建之后
2.进入新建状态
3.JVM则给他分配内存空间
4.并进行初始化操作
5.当线程对象调用了start()方法,
6.该线程就处于就绪状态(可执行状态)
7.JVM会为其创建方法调用栈、和程序计数器,处于可执行状态下的线程随时可以被cpu调度执行
8.CPU执行该线程的时候,该线程进入执行状态
9.执行过程中,该线程遇倒像wait()等待阻塞、以及synchronized锁同步阻塞或者调用线程的sleep()方法等进入一个阻塞状态
10.阻塞之后通过notify()或者notifyAll()方法唤醒重新获取对象锁之后再行进入就绪状态
11.等待cpu执行进去执行状态、当线程执行完或者return则线程正常结束
12.如果发生处理的运行时异常,则线程因为异常而结束。
  • 这是一个线程的整个运行的生命周期。如下图所示:

https://images0.cnblogs.com/blog/497634/201312/18152411-a974ea82ebc04e72bd874c3921f8bfec.jpg

本文来源huayang183,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/18621

发表评论