这节课我们就讲一个方法,Thread.sleep(long millis)
首先补充一个知识点
public static void main(String[] args) {
System.out.println(Thread.currentThread().getName());
}
运行结果;
main
可以看到其实main方法自启动了一个名为main的线程。
接下来讲讲sleep
Demo01:
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 5; i++) {
Thread.sleep(1000);
System.out.println(i);
}
}
运行结果:
每隔一秒输出一个数(0,1,2,3,4)
讲解:
public static native void sleep(long millis) throws InterruptedException;
又看到了一个新的关键字,native
由native标识的方法叫本地方法,该方法的功能是由额外的C++代码实现的,而这个C++代码其实就在你的电脑本地里
下面讲讲sleep的作用:
暂停当前线程的运行,被暂停的线程会进入等待状态,当暂停时间过后自定进入就绪队列。
Demo02 :
public static void main(String[] args) throws InterruptedException {
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println("线程1");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
},"线程1");
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程2");
}
},"线程2");
thread1.start();
thread2.start();
}
运行结果:
在等待1s后输出了线程1和线程2(顺序不确定)