栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

sleep()---线程休眠

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sleep()---线程休眠

上一篇:join()—等待线程执行终止

sleep()是Thread类下的一个静态方法

另外一个sleep(long time,int nanos)也是静态的,,最终还是调用了sleep()方法

当一个执行中的线程调用了Thread的sleep()方法后,调用线程会暂时让出指定时间的执行权,也就是在这期间,该线程不参与cpu的调度 但是该线程所拥有的监视器资源比如锁,不会让出,也就是线程在sleep()期间,一直占有锁,不会释放。

在sleep()时间到了之后,线程正常返回,处于就绪状态然后参与cpu的调度,获取到cpu资源后继续执行。

代码示例:

public class SleepTest {

    private Object object = new Object();

    public SleepTest() {

        Thread thread1 = new Thread(() -> {
            synchronized (object){
                try {
                    System.out.println("线程1   获取到对象锁");
                    System.out.println("线程1   开始休眠");
                    Thread.sleep(3000);
                    System.out.println("线程1   休眠结束");
                    System.out.println("线程1   执行结束");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

        Thread thread2 = new Thread(() -> {
            synchronized (object){
                try {
                    System.out.println("线程2   获取到对象锁");
                    System.out.println("线程2   开始休眠");
                    Thread.sleep(3000);
                    System.out.println("线程2   休眠结束");
                    System.out.println("线程2   执行结束");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });


        thread1.start();
        thread2.start();
    }

    public static void main(String[] args) {
        new SleepTest();
    }

}

执行结果:

在线程休眠期间,另外一个线程没有执行,,说明在线程休眠期间,不会释放object的锁,因此其他线程无法获取到则不能执行。

sleep()也是线程阻塞的一种方式;

与wait()的差别:

sleep(long time)wait(long time)
Thread类下的一个静态方法Object类的方法
使线程休眠期间不释放锁阻塞期间,释放锁

与wait()的相同点:
1、调用期间都释放cpu调度权,即不参与线程调度器的调度
2、阻塞线程
3、阻塞时间到了之后,正常返回,处于就绪状态

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/271633.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号