快捷搜索:  汽车  科技

简述线程生命周期的五种状态(线程生命的几种状态)

简述线程生命周期的五种状态(线程生命的几种状态)操作系统会为处于可运行状态的线程分配CPU时间片,被CPU临幸后,处在可运行状态的线程就会变为运行状态。运行状态线程已被创建,但是还不被允许分配CPU执行,注意,这个创建其实是属于编程语言层面的,实际在操作系统里,真正的线程还没有被创建。可运行状态线程可以分配CPU执行,这时,操作系统中线程已经被创建成功了。

一、线程生命周期的几种状态

大致分为操作系统通用线程状态和编程语言封装后的线程状态。

操作系统通用线程状态:

简述线程生命周期的五种状态(线程生命的几种状态)(1)

初始状态

线程已被创建,但是还不被允许分配CPU执行,注意,这个创建其实是属于编程语言层面的,实际在操作系统里,真正的线程还没有被创建。

可运行状态

线程可以分配CPU执行,这时,操作系统中线程已经被创建成功了。

运行状态

操作系统会为处于可运行状态的线程分配CPU时间片,被CPU临幸后,处在可运行状态的线程就会变为运行状态。

休眠状态

如果处在运行的线程调用某个阻塞的API和等待某个条件可用,那么线程就会转换到休眠状态,注意:此时线程会释放CPU使用权,休眠的线程永远没有机会获得CPU使用权,只有当等待事情出现后,线程会从休眠状态转换到可运行状态。

终止状态

线程执行完或者出现异常(被interrupt那种不算)就会进入终止状态,正式走到生命的尽头,没有起死回生的机会。

Java语言线程状态:

1、New

2、Runnable

3、Blocked

4、Waiting

5、Timed_Waiting

6、Terminated

简述线程生命周期的五种状态(线程生命的几种状态)(2)

更详细图:

简述线程生命周期的五种状态(线程生命的几种状态)(3)

猜您喜欢: