java.util.concurrent.locks
1、Lock实现提供了比使用同步函数和同步代码块可获得的更广泛的锁定操作。此实现允许更灵活的结构,可以具有差别很大的属性,可以支持多个相关的condition对象。
----lock在替代同步函数。。的操作----
2、方法:
lock()获取锁;unlock()释放锁。
3、wait();notify()等方法都应该定义在同步块中,每一个wait(),notify(),,都要标示自己所使用的锁;
现在同步变成了lock,wait()/notify()变成 了condition
示例:
4、condition将Object监视器方法(wait,notify,notifyAll)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多哥等待set(wait-set)。其中,Lock替代了synchronized方法和语句的使用,Condition替代了Object监视器方法的使用。
注意:JDK1.5提供了多线程升级解决方案;将同步替换成显式的Lock操作,将Object中的wait(),notify(),notifyAll(),替换成了condition对象,该对象可以通过Lock锁进行获取。
该示例中,实现了只唤醒对方的操作。
|
|