// 最常用
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);
}