java多线程-Thread的sleep方法

Posted 扶不起的刘阿斗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java多线程-Thread的sleep方法相关的知识,希望对你有一定的参考价值。

public static native void sleep(long millis) throws InterruptedException;
sleep是本地静态方法。
sleep的作用是让线程进入TIME_WAITING状态,参数是多少毫秒。
class Test {
    public static void main(String[] args){
        Thread thread = new Thread(()->{
            try {
                Thread.sleep(2000);
                System.out.println("over");
            } catch (InterruptedException e) {
                System.out.println("interrupt");
            }
        });
        thread.start();
    }
}

/**
 结果:2秒后看到over
 */
sleep可被interrupt打断,抛出InterruptedException。
class Test {
    public static void main(String[] args){
        Thread thread = new Thread(()->{
            try {
                Thread.sleep(2000);
                System.out.println("over");
            } catch (InterruptedException e) {
                System.out.println("interrupt");
            }
        });
        thread.start();
        thread.interrupt();
    }
}

/**
 结果:立刻看到interrupt
 */

 

注意:sleep方法并不释放锁。


以上是关于java多线程-Thread的sleep方法的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程学习笔记— “Thread类三个方法:线程休眠sleep()线程礼让yield()线程强制执行join()”

Java多线程java中的Sleep方法

java 多线程 sleep 和wait

java Thread.sleep卡死问题

Java多线程和Thread.sleep [重复]

week 11 ——java 多线程