1.5版本,Java.util.concurrent.locks包中提供了一个借口Lock,替代了synchronized
Synchronized,使用的是隐式的锁,lock是显式的锁.
这种新方法最大的好处是,在一个lock锁上可以添加多组监视器对象,这样就可以实现本方只唤醒对方的线程,而不会唤醒本方的线程。
Lock lock = new ReentrantLock(); 创建锁
lock.lock() 上锁
Condition proCon = lock.newCondition() 在锁lock上创建监视器proCon
Condition cutCon = lock.newCondition() 在索lock上创建监视器cutCon
proCon.await() 使pro(本方)线程进入等待
cutCon.signal() 唤醒cut(对方)线程
Lock.unlock() 解锁(通常放在finally中) |