虚假唤醒对性能造成的影响有多大?

BearKin 2011-11-24 05:29:23
今天无事的时候看API 看到这个类java.util.concurrent.locks.Condition 的时候 看到个名词叫 虚假唤醒
说来惭愧 我都是先遇到问题 才知道名词 实在是知识量不够啊

不扯了... 入主题
正常情况下 我们唤醒某个线程都是调用notifyAll()函数 但是这个函数会唤醒等待在某个对象上的所有线程 而某些线程不是你希望唤醒的(比如说消费/生产者模式 可能生产者线程只生产了一个产品 但是一个唤醒操作却唤醒了所有的消费者线程) 最后导致这些刚被唤醒的线程马上又挂起 这种情况是否就是虚假唤醒

另外 在实际开发中 有必要注意这个问题么 这种情况对性能造成的影响有多大呢?

如果俺哪里说错了 请回帖的童鞋温柔的指正 谢谢哦~

...全文
786 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BearKin 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 funfenffun 的回复:]
对于大多数应用程序,这带来的实际影响很小,因为Condition应该总是在一个循环中被等待,并测试正被等待的状态声明。
[/Quote]

唤醒多余线程本身对性能没任何影响么?
funfenffun 2011-11-25
  • 打赏
  • 举报
回复
对于大多数应用程序,这带来的实际影响很小,因为Condition应该总是在一个循环中被等待,并测试正被等待的状态声明。
BearKin 2011-11-25
  • 打赏
  • 举报
回复
...因为太基础 所以米人看?
IT_Elite0 2011-11-24
  • 打赏
  • 举报
回复
不懂。 @    默然擦肩过。   留名。
BearKin 2011-11-24
  • 打赏
  • 举报
回复
最好是有人说明下在什么情况下适合使用notifyAll() 而在使用notify()的时候又需要注意什么

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧