线程休眠使用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