那么现在我们来了解线程一个完整的生命周期的运行过程,与下图可以看出有:新建 - 就绪 - 运行 - 阻塞 - 死亡五个过程。
生命周期图
下面我们一个一个的来介绍:
- 新建:刚刚创建还在内存当中,还没有在可调度线程池中,还不能被cpu调度执行工作。
- 就绪:进入调度池,可被调度。
- 运行:CPU负责调度”可调度线程池”中的处于”就绪状态”的线程,线程执行结束之前,状态可能会在”就绪”和”运行”之间来回的切换。“就绪”和”运行”之间的状态切换由CPU来完成,程序员无法干涉
- 阻塞:正在运行的线程,当满足某个条件时,可以用休眠或者锁来阻塞线程的执行,被移出调度池,进入内存,不可执行。
- 死亡:分为两种情况。正常死亡,线程执行结束。非正常死亡,程序突然崩溃/当满足某个条件后,在线程内部强制线程退出,调用exit方法。
exit方法的作用和总结
- 使当前线程退出.
- 不能在主线程中调用该方法,会使主线程退出.
- 当当前线程死亡之后,这个线程中的代码都不会被执行.
- 在调用此方法之前一定要注意释放之前由C语言框架创建的对象.
上一篇:多线程的基本理解
下一篇:实现多线程的方法有哪些?
网友评论