一个线程,从“生”到“死”经历的过程
本文分享自华为云社区《面试必问 | 一个线程从创建到消亡要经历哪些阶段?》,作者: 冰 河。 今天,我们就结合操作系统线程和编程语言线程再次深入探讨线程的生命周期问题,线程的生命周期其实没有我们想象的那么简单!! 理解线程的生命周期本质上理解了生命周期中各个节点的状态转换机制就可以了。接下来,我们分别就通用线程生命周期和Java语言的线程生命周期分别进行详细说明。 通用的线程生命周期 通用的线程生命周期总体上可以分为五个状态:初始状态、可运行状态、运行状态、休眠状态和终止状态。 我们可以简单的使用下图来表示这五种状态。 初始状态 线程已经被创建,但是不允许分配CPU执行。需要注意的是:这个状态属于编程语言特有,这里指的线程已经被创建,仅仅指在编程语言中被创建,在操作系统中,并没有创建真正的线程。 可运行状态 线程可以分配CPU执行。此时,操作系统中的线程被成功创建,可以分配CPU执行。 运行状态 当操作系统中存在空闲的CPU,操作系统会将这个空闲的CPU分配给一个处于可运行状态的线程,被分配到CPU的线程的状态就转换成了运行状态 休眠状态 运行状态的线程调用一个阻塞的API(例如,以阻...





