Thread.sleep是一个静态方法!!
下面这个问题,可能会在面试中出现!
public class SleepDemo {
public static void main(String[] args) {
MyThread t1 = new MyThread();
t1.setName("t1");//设置线程t1的名字
System.out.println(t1.getName());//打印线程t1的名字
t1.start();//启动线程
try {
//sleep的作用是让当前线程进入睡眠,进入"阻塞状态",放弃占用的cpu时间片!
//问题:这段代码会让线程t1进入休眠吗? 答应是:不会!!
t1.sleep(1000*5);//这行代码的作用是让当前线程进入休眠!!也就是说main线程进入休眠
//这行代码出现在main方法中,所以main方法睡眠
} catch (InterruptedException e) {
e.printStackTrace();
}
//下面这个sout语句5s后才会执行!!
System.out.println("我执行了睡眠这个程序");
}
}
class MyThread extends Thread{
@Override
public void run() {
for (int i = 0; i < 100; i++) {
//Thread thread = Thread.currentThread();获取当前线程的名字
System.out.println(currentThread().getName()+"---->"+i);
}
}
}