之前也看过Java多线程相关的资料和代码,但没有深入的研究过。最近读了Flume的源码,里面使用了很多多线程的东西,仔细揣摩后受益匪浅。于是又拿起前段时间买的方老师写的《java并发编程的艺术》一书,以下是个人在研读此书后,实践而成~~呵呵
import java.util.concurrent.TimeUnit;
public class ThreadState {
public static void main(String[] args) {
new Thread(new TimeWaiting(), "TimeWaitingThread").start();
}
/**该线程不断地进行睡眠 */
static class TimeWaiting implements Runnable {
@Override
public void run() {
while(true) {
try {
TimeUnit.SECONDS.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
使用jstack查看线程状态,结果如下:
看到线程处于:超时等待状态