标签:
排它锁概念:
Exclusive Locks,被称为X锁,写锁,独占锁.如果事物T1对数据对象O1加上了排它锁,那么在整个加锁期间,只允许事务T1对O1进行读写操作,其他事务必须等到T1释放锁后才能进行操作.在单机环境中,JDK提供了synchronized关键字和ReentrantLock
重用锁来提供排它锁的功能.
zookeeper实现排它锁原理:
在需要获取排它锁时,所有的客户端都会调用create方法在固定路径下创建节点,并发环境下,只有一个客户端可以创建成功,相当于获取了锁,当该客户端完成事务后,删除该节点.对于没有获取成功的其他节点,则在该路径上设置监听,如果该路径子节点删除事件触发,继续尝试获取锁(create).
具体实现:
定义锁的接口:(我想实现的几个方法)
public interface DistributedLock { void lock(); boolean isLocked(); boolean tryLock(); boolean tryLock(long timeout); void unlock(); }
标签:
原文地址:http://www.cnblogs.com/dodoJavaLearner/p/5476586.html