docs: public void lock() throws InterruptedException, KeeperException {
          // 可能初始化的时候就失败了
          if (exception != null) {
              throw exception;
          }
  
          if (interrupt != null) {
              throw interrupt;
          }
  
          if (other != null) {
              throw new NestableRuntimeException(other);
          }
  
          if (isOwner()) {// 锁重入
              return;
          }
  
          BooleanMutex mutex = new BooleanMutex();
          acquireLock(mutex);
  
          mutex.get();
          // 避免zookeeper重启后导致watcher丢失，会出现死锁使用了超时进行重试
          // try {
          // mutex.get(DEFAULT_TIMEOUT_PERIOD, TimeUnit.MILLISECONDS);// 阻塞等待值为true
          // } catch (TimeoutException e) {
          // if (!mutex.state()) {
          // lock();
          // }
          // }
  
          if (exception != null) {
              unlock();
              throw exception;
          }
  
          if (interrupt != null) {
              unlock();
              throw interrupt;
          }
  
          if (other != null) {
              unlock();
              throw new NestableRuntimeException(other);
          }
      }