一、 Java线程生命周期(五个阶段)
新建状态就绪状态运行状态阻塞状态死亡状态
如图
二、sleep方法
API中的解释
static voidsleep(long millis) 使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行),具体取决于系统定时器和调度程序的精度和准确性。 static voidsleep(long millis, int nanos) 导致正在执行的线程以指定的毫秒数加上指定的纳秒数来暂停(临时停止执行),这取决于系统定时器和调度器的精度和准确性。
三、面试题
public class ThreadText06 {
public static void main(String[] args) {
Thread mt=new MyThread04();
mt.start();
mt.run();
try {
mt.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Hi Java");
}
}
class MyThread04 extends Thread{
@Override
public void run() {
}
}
分析:哪一个线程休眠5秒?
答案是main线程,因为sleep()方法是静态方法,使用静态方法可以用"类名".方法名,也可以用"对象".方法名。
使用"对象".方法名的时候,实质在运行的时候还是会将"对象".转换为"类名".的方式.即Threa.sleep();
因为Threa.sleep()在主方法中,所以是主方法休眠。