1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
// 最常用 public InterProcessMutex(CuratorFramework client, String path){ // Zookeeper利用path创建临时顺序节点,实现公平锁的核心 this(client, path, new StandardLockInternalsDriver()); }
public InterProcessMutex(CuratorFramework client, String path, LockInternalsDriver driver){ // maxLeases=1,表示可以获得分布式锁的线程数量(跨JVM)为1,即为互斥锁 this(client, path, LOCK_NAME, 1, driver); }
// protected构造函数 InterProcessMutex(CuratorFramework client, String path, String lockName, int maxLeases, LockInternalsDriver driver){ basePath = PathUtils.validatePath(path); // internals的类型为LockInternals,InterProcessMutex将分布式锁的申请和释放操作委托给internals执行 internals = new LockInternals(client, driver, path, lockName, maxLeases); }
|