- static void sleep(long ms)
* 当指定时间经过后,线程会重新回到runnable【可运行状态】状态
* 等待分配时间片并发运行.
下面通过简单实例演示
public class ThreadDemo7 { public static void main(String[] args) { System.out.println("程序开始了"); try { Thread.sleep(5000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("程序结束了"); } }
sleep使用场景:计时器
/** * 电子表功能 * @author Cher_du * */ public class ThreadDemo8 { public static void main(String[] args) { /* *循环显示 *每秒钟在控制台输出当前系统时间 *格式:15:17:09 */ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); while(true){ System.out.println(sdf.format(new Date())); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
总结:经常会用到 Thread.Sleep 函数来使线程挂起一段时间
拓展:Thread.Sleep(0) 用法:
触发操作系统立刻重新进行一次CPU时间片分配竞争,竞争的结果也许是当前线程仍然获得CPU时间片,也许会换成别的线程获得CPU时间片