在平时的开发工作中,我们一定会接触到线程,线程池,以及FutureTask等.那么它们的状态又是如何流转的呢?
接下来我用三张图来让读者从全局观了解熟悉它们的状态变化.
线程状态
线程的状态共有6个,分别是
NEW
RUNNABLE
WAITING
TIMED_WAITING
BLOCKED
TERMINATED
这里所说的线程状态是线程在JVM中的状态,那么线程在操作系统中的对应状态又是什么呢?这个我们会在后面的文章中详细介绍.
线程池状态
线程池的状态共有5个,分别是
RUNNING
SHUTDOWN
STOP
TIDYING
TERMINATED
当我们在向线程池提交任务的时候,流程是什么? 请期待
线程池中的任务状态
向线程池提交的任务也有相应的状态.
任务的状态共有7个,分别是
NEW
COMPLETING
NORMAL
EXCEPTIONAL
CANCELLED
INTERRUPTING
INTERRUPTED
当我们在调用get(), cancel()方法时,以及任务在执行的过程, 状态是如何流转的?请期待
此篇文章主要是先让读者对线程状态,线程池状态,任务状态有个全局观, 后面会有专题问题分别介绍它们.
线程是程序的灵魂, 是线程一直在活动, 我们只有知道它们在干什么, 处于什么状态, 才能更高的开发以及排查问题.