notify()和notifyAll()的区别说明?

杨采妮 Java面经 发布时间:2022-05-30 10:56:09 阅读数:14475 1
下文笔者讲述notify()和notifyAll()的区别说明,如下所示:
两者功能简介:
  1.notify()和notifyAll():
      都是Object对象用于通知处在等待该对象的线程的方法
  2.void notify():
      唤醒一个正在等待该对象的线程
  3.void notifyAll():
      唤醒所有正在等待该对象的线程

notify()和notifyAll()的最大区别在于:
  notifyAll让所有原来在该对象上等待被notify的线程退出wait状态
          变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争

  notify:
      只会选择一个wait状态线程进行通知
      并使它获得该对象上的锁
      但不惊动其他同样在等待被该对象notify的线程们
  当第一个线程运行完毕以后释放对象上的锁,此时如果该对象没有再次使用notify语句,即便该对象已经空闲
  其他wait状态等待的线程由于没有得到该对象的通知,继续处在wait状态,直到这个对象发出一个notify或notifyAll
  它们等待的是被notify或notifyAll,而不是锁
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202205/16538797853565.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者