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

wait(),notify(),notifyAll()三个方法(加面试题)

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

wait(),notify(),notifyAll()三个方法(加面试题)

* wait();一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。
* notify():一旦执行此方法,就会唤醒被wait()的一个线程。如果有多个线程被wait,就会唤醒优先级高的哪一个线程。
* notifyAll():一旦执行此方法,就会唤醒所有被wait的线程。
*
* 说明:
* 1、wait();notify():notifyAll():这三个方法都必须使用同步代码块或同步方法之中。
* 2、wait();notify():notifyAll():这三个方法的调用者必须是同步代码块或同步方法之中的同步监器。
* 3、wait();notify():notifyAll():这三个方法是定义在,java.long.Object类中。

 面试题:sleep()和wait()的异同?
 1、只要执行此方法,都可以是当前的线程进入阻塞状态。
 2、不同点:1):两种方法声明的位置不同:Thread类中声明sleep(),Object类中声明wait();
           2):调用时的要求不一样:sleep()可以在任意需要的场景下调用。wait()必须使用在同步代码块或同步方法中。
           3):关于是否释放同步监视器;如果两个方法都使用在同步代码块或者同步方法中,sleep(),不会释放锁(同步监视器),wait()会释放。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/967026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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