java中的线程休眠
线程休眠使用Thread类的sleep方法实现。线程休眠时不会释放锁,也就是虽然自己不在运行,但是不把运行的机会让给别的线程。
下面介绍线程休眠的两个应用。
线程休眠进行倒计时
以下代码使用线程休眠模拟倒计时:
package com.cxf.multithread.sleep;
public class TestForSleep {
public static void main(String[] args) {
TenDown();
}
public static void TenDown(){
int num = 10;
while (num>=0){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(num--);
}
}
}
输出结果:
10
9
8
7
6
5
4
3
2
1
0
线程休眠定时打印系统时间
以下代码定时打印系统时间:
package com.cxf.multithread.sleep;
import com.cxf.gui.snake.Data;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestForSleep {
public static void main(String[] args) throws InterruptedException {
Date time = new Date(System.currentTimeMillis());
int num = 10;
while (num>0){
Thread.sleep(1000);
System.out.println(new SimpleDateFormat("HH:mm:ss").format(time));
time = new Date(System.currentTimeMillis());
num--;
}
}
}
输出结果:
21:22:37
21:22:38
21:22:39
21:22:40
21:22:41
21:22:42
21:22:43
21:22:44
21:22:45
21:22:46