线程休眠

suaxi
2020-11-25 / 0 评论 / 84 阅读 / 正在检测是否收录...

线程休眠

  • sleep(时间)指当前线程阻塞的毫秒数
  • sleep存在异常InterruptedException
  • sleep时间达到后线程进入就绪状态
  • 可以模拟网络延时,倒计时等
  • 每一个对象都有一个锁,sleep不会释放锁

模拟倒计时实例:

package com.thread.state;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Author suaxi
 * @Date 2020/11/25 17:24
 */
public class TestSleep2 {

    public static void main(String[] args){
        //tenDown();

        //打印当前系统时间
        Date date = new Date(System.currentTimeMillis());
        while (true){
            try {
                Thread.sleep(1000);
                System.out.println(new SimpleDateFormat("HH:mm:ss").format(date));
                date = new Date(System.currentTimeMillis()); //更新当前系统时间
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    //模拟倒计时
    public static void tenDown() throws InterruptedException {
        int num = 10;
        while (true){
            Thread.sleep(1000);
            System.out.println(num--);
            if (num<=0){
                break;
            }
        }
    }
}
0

评论 (0)

取消