JAVA线程(Thread)可能出现的6种状态(state)

日期:2014-12-05 21:46:56

留言:0

分类:学习记录

标签: Java

以下说明可在JDK的api中查看,也可通过当前线程实例的state()方法获得当前的状态。

NEW

至今尚未启动的线程处于这种状态。

(使用new创建的实例,在未调用start()方法前处于此状态)

RUNNABLE

正在 Java 虚拟机中执行的线程处于这种状态。

(如上所示)

BLOCKED

受阻塞并等待某个监视器锁的线程处于这种状态。

(多个线程调用同一个带有synchronized的方法或代码块时,在同一个时间点只有一个线程可以执行里面的代码,其他在执行此代码前处于此状态,如最常用的System.out.println()方法)

WAITING

无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。

(如当某个线程调用wait()方法后,处于此状态)

TIMED_WAITING

等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。

(如当某个线程调用sleep(long millis)方法后,在millis毫秒前处于这种状态)

TERMINATED

已退出的线程处于这种状态。

(当某个线程的run()方法中的代码运行结束后处于这种状态)

给我留言
留言表
ZengDongwu
Hi ~ 当前还没有人留言,欢迎您给我留言 ^_^