线程的状态和生命周期

292 阅读1分钟

那么现在我们来了解线程一个完整的生命周期的运行过程,与下图可以看出有:新建 - 就绪 - 运行 - 阻塞 - 死亡五个过程。 生命周期图 下面我们一个一个的来介绍:

  • 新建:刚刚创建还在内存当中,还没有在可调度线程池中,还不能被cpu调度执行工作。
  • 就绪:进入调度池,可被调度。
  • 运行:CPU负责调度”可调度线程池”中的处于”就绪状态”的线程,线程执行结束之前,状态可能会在”就绪”和”运行”之间来回的切换。“就绪”和”运行”之间的状态切换由CPU来完成,程序员无法干涉
  • 阻塞:正在运行的线程,当满足某个条件时,可以用休眠或者锁来阻塞线程的执行,被移出调度池,进入内存,不可执行。
  • 死亡:分为两种情况。正常死亡,线程执行结束。非正常死亡,程序突然崩溃/当满足某个条件后,在线程内部强制线程退出,调用exit方法。

exit方法的作用和总结

  1. 使当前线程退出.
  2. 不能在主线程中调用该方法,会使主线程退出.
  3. 当当前线程死亡之后,这个线程中的代码都不会被执行.
  4. 在调用此方法之前一定要注意释放之前由C语言框架创建的对象.

本文参考上进求知,认真思辨wuhao丶

推荐上篇内容:多线程的基本理解

推荐下篇内容:实现多线程的方法有哪些?