线程的生命周期

技术主题

有一次在面试的时候,那个面试官给我出了一道多线程的题,因为我在实际业务中,用到的多线程往往是线程池来完成的,然后我就用线程池来异步调多个接口,返回的参数拼接到一个map中,当时提出的一个问题是,如果其中一个请求的请求时间太长,这里的map是完整的吗?

后来发现确实线程这块没理清楚,觉得想学一个多线程。了解一下线程的生命周期

通用的线程生命周期

线程的生命周期_第1张图片
1、初始状态,线程已经被创建,但是不不能分配cpu执行,属于编程语言特有的,这里的创建是仅仅是在编程语言层面被创建的。真正的操作系统线程没有创建
2、可运行状态,指的是线程可以分配cpu执行。在这种状态下,真正的操作系统线程已经被成功创建了,可以分配cpu执行
3、当有空闲的cpu时,操作系统会将其分配给一个处于可运行状态的线程,被分配到cpu的线程的状态就转换成了运行状态
4、运行状态的线程如果调用一个阻塞的api或者等待某个事件,那么线程的状态就会转成休眠状态
5、线程执行完或者出现异常就会进入终止状态,终止状态的线程不会切换到其他任何状态,周期完成了

java中线程的生命周期

java语言中2线程共有六种状态,分别是:
1、new(初始化状态)
2、runnable(可运行/运行状态)
3、blocked(阻塞状态&#

你可能感兴趣的:(计算机技术知识,jvm,java,面试)