多线程 睡眠

本文探讨了Java中Thread.sleep()方法的使用,如何让线程休眠以及其在多线程环境中的作用。通过示例代码展示了如何在线程执行过程中插入睡眠,以确保其他线程有机会执行。强调了线程睡眠的自动苏醒特性以及其不能保证立即执行的细节。
摘要由CSDN通过智能技术生成

现在还不理解这个,再看看吧

 

 

1、睡眠

Thread.sleep(long millis)和Thread.sleep(longmillis, int nanos)静态方法强制当前正在执行的线程休眠(暂停执行),以“减慢线程”。当线程睡眠时,它入睡在某个地方,在苏醒之前不会返回到可运行状态。当睡眠时间到期,则返回到可运行状态。

线程睡眠的原因:线程执行太快,或者需要强制进入下一轮,因为Java规范不保证合理的轮换。

 

睡眠的实现:调用静态方法。

        try {
           Thread.sleep(123);
        } catch (InterruptedException e) {
           e.printStackTrace(); 
        }

 

睡眠的位置:为了让其他线程有机会执行,可以将Thread.sleep()的调用放线程run()之内。这样才能保证该线程执行过程中会睡眠。

 

例如,在前面的例子中,将一个耗时的操作改为睡眠,以减慢线程的执行。可以这么写:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值