温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

 java中的Thread.sleep()如何使用

发布时间:2023-04-21 16:29:16 来源:亿速云 阅读:116 作者:iii 栏目:开发技术

这篇文章主要介绍了 java中的Thread.sleep()如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇 java中的Thread.sleep()如何使用文章都会有所收获,下面我们一起来看看吧。

sleep

Thread.sleep()被用来暂停当前线程的执行,会通知线程调度器把当前线程在指定的时间周期内置为wait状态。当wait时间结束,线程状态重新变为Runnable并等待CPU的再次调度执行。所以线程sleep的实际时间取决于线程调度器,而这是由操作系统来完成的。

一个进程在运行态时调用sleep(),进入等待态,睡眠结束以后,并不是直接回到运行态,而是进入就绪队列,要等到其他进程放弃时间片后才能重新进入运行态。所以sleep(1000),在1000ms以后,线程不一定会被唤醒。sleep(0)可以看成一个运行态的进程产生一个中断,由运行态直接转入就绪态。这样做是给其他就绪态进程使用时间片的机会。总之,还是操作系统中运行态、就绪态和等待态相互转化的问题。

功能介绍:

让当前线程由运行状态进入到阻塞状态,进而使其他线程有机会继续执行任务。虽然使线程休眠,但是并不释放对象锁,所以说如果在同步块中使用sleep(),其他线程仍然无法获得执行权限。

注意:sleep()方法定义在Thread类中,会调用sleep(millis)这个本地方法,抛出InterruptedException异常,因此需要捕获该异常

Thread sleep(long millis)  
暂停当前线程的执行,暂停时间由方法参数指定,单位为毫秒。
注意参数不能为负数,否则程序将会抛出IllegalArgumentException。

Thread sleep(long millis, int nanos)  
暂停当前线程的执行,暂停时间为millis毫秒数加上nanos纳秒数。
纳秒允许的取值范围为0~999999.

例:

public class Dome {
    public static void main(String[] args) throws InterruptedException {
        for (int i = 0; i < 10; i++) {
            System.out.println(i);
            //每隔一秒钟进行一次循环输出
            Thread.sleep(1000);//单位:毫秒
        }
    }
}

运行结果:

0
1
2
3
4

关于“ java中的Thread.sleep()如何使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“ java中的Thread.sleep()如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI