老毕视频其实讲的非常多了,打个比方:生产者与消费者,老的同步代码块和同步方法,你没法由一方唤醒另一方,你只能把在等待的全部唤醒。
JDK5.0中提供了多线程升级解决方案。 显示的锁机制。 将同步synchronized替换成了lock操作
将Object中的wait,notify,notifyAll替换成了Condition对象
该对象可以通过lock锁进行获取
这样就可以实现本方法只唤醒对方的操作。
总结:5.0之后提供了显示的锁机制,以及显示的锁对象上的等待唤醒操作机制 ,同时把等待唤醒进行了封装。一个锁
可以对应多个Condition,之前一个锁对应一个wait,notify。
当你要进行线程同步并且线程通信时,建议使用显示的锁机制,新特性,人家都是升级的解决方案了。 |