package seday08.thread;
import java.util.Scanner;
/**
* @author xingsir
* 线程提供的方法:static void sleep(long ms)
* 这是一个静态方法,当一个线程执行了这个方法后就会进入阻塞状态,并阻塞指定的毫秒。当超时后,线程会自动回到RUNNABLE状态等待再次获取时间片并发运行。
*/
public class SleepDemo {
public static void main(String[] args) {
System.out.println("begin.......");
/*
* 定时器原理
* 程序启动后要求输入一个数字,然后从这个数字开始每秒递减,当到0时输出"时间到"并退出程序。
*/
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个随机数字:");
int num=Integer.parseInt(scanner.nextLine());//转换格式
for (;num>0;num--) {//循环递减
System.out.println(num);//输出
//阻塞指定的毫秒,可注释掉后可对比前后执行速度
try {
Thread.sleep(1000);//休息1000毫秒
} catch (InterruptedException e) {
e.printStackTrace();//输出错误堆栈信息,有助于定位并解决错误
}
}
System.out.println("时间到!");
System.out.println("end");
}
}