操作系统中的五种状态
- 新建:创建新的进程
- 就绪:进程已经获得除CPU时间片以外的任何资源,一旦获得cpu时间片就能立马执行。
- 执行:处于就绪队列中的进程获得了时间片运行进程。
- 阻塞:进程时间片用完进入阻塞队列中等待唤醒。
- 终止:进程执行完毕。
JAVA中线程的六种状态
java中的线程状态直接看Thread中的State状态源码。
1. NEW
根据源码中解释 Thread state for a thread which has not yet started.
翻译过来就是尚未启动的线程的线程状态。
就是已经创建了的Thread但未调用start方法启动。
2. RUNNABLE
根据源码中的解释翻译过来就是可运行线程的线程状态。 处于可运行状态的线程正在Java虚拟机中执行,但它可能正在等待来自操作系统(如处理器)的其他资源。
。
简单理解为运行中的线程或者处于操作系统级别中的就绪或者阻塞状态
3. BLOCKED
翻译过来就是等待监视器锁的线程的线程状态。 一个处于阻塞状态的线程正在等待一个监视器锁进入一个同步的块/方法或在调用Object.wait之后重新进入一个同步的块/方法。
,简单理解为处于锁竞争状态中未获取到锁的阻塞的状态。
4. WAITING
翻译:处于等待状态的线程正在等待另一个线程执行特定的操作。 例如,在一个对象上调用了object. wait()的线程正在等待另一个线程在该对象上调用object. notify()或object. notifyall()。 调用thread .join()的线程正在等待指定的线程终止。
5. TIMED_WAITING
翻译:具有指定等待时间的等待线程的线程状态。 由于以指定的正等待时间调用以下方法之一,线程处于定时等待状态: Thread.sleep、 Object.wait with timeout、 Thread.join with timeout、 LockSupport.parkNanos、 LockSupport.parkUntil
个人理解:就是调用了一些需要等待时间的API处于等待时间内的线程状态。
6. TERMINATED
翻译:终止线程的线程状态。 线程已完成执行。
个人理解:就是运行完了的线程。