以前学习操作系统这门课程的时候,对线程状态的学习是比较粗略的,仅限于表面的了解,在后续学习和使用的过程中,
我发现自己之前的认知与Java api中定义的线程状态是有出入的,在使用过程中也会有很多误解,
所以按照java.lang.Thread.State中的详细定义和说明,进行了如下整理,作为自我总结和学习。
根据Java api,Java中线程一共有如下6种状态,即NEW、RUNNABLE、BLOCKED、WAITING、TIME_WAITING、TERMINATED:
1. NEW
NEW: 新建状态,指已经创建了线程对象,但是该线程尚未启动,即还没有调用start()方法。根据Java api,定义如下:
Thread state for a thread which has not yet started
2. RUNNABLE
RUNNABLE: 按照字面翻译是“可运行的”, 但是根据Java api中的定义:
A thread in the runnable state is executing in the jvm but it may be waiting for other resources from the operating system such as processor
因此,说该状态是“运行中”更恰当,