【Java并发基础】使用“等待—通知”机制优化死锁中占用且等待解决方案
【Java并发基础】使用“等待—通知”机制优化死锁中占用且等待解决方案 阅读目录前言就医流程—完整的“等待—通知”机制Java中“等待—通知”机制的实现如何使线程等待,wait()如何唤醒线程,notify()/notifyAll()使用“等待-通知”机制重写转账一些需要注意的问题sleep()和wait()的区别为什么wait()、notify()、notifyAll()是定义在Object中,而不是Thread中?小结 回到目录前言在前篇介绍死锁的文章中,我们破坏等待占用且等待条件时,用了一个死循环来获取两个账本对象。 java// 一次性申请转出账户和转入账户,直到成功while(!actr.apply(this, target));我们提到过,如果apply()操作耗时非常短,且并发冲突量也不大,这种方案还是可以。否则的话,就可能要循环上万次才可以获取锁,这样的话就太消耗CPU了! 于是我们给出另一个更好的解决方案,等待-通知机制:若是线程要求的条件不满足,则线程阻塞自己,进入等待状态;当线程要求的条件满足时,通知等待的线程重新执行。 Java是支持这种等待-通知机制的,下面我...


