code: public static boolean unlock(int innerId) {
          InterProcessMutex mutex = map.remove(innerId);
          if (mutex != null) {
              if (mutex.isAcquiredInThisProcess()) {
                  try {
                      mutex.release();
                      LOG.debug("解锁成功...");
                      return true;
                  } catch (Exception e) {
                      LOG.error("解锁失败！", e);
                      return false;
                  }
              } else {
                  LOG.error(new LockNotOwnedByCurrentThread());
                  return false;
              }
          } else {
              //这里暂时不抛出异常，只打印日志
              LOG.error(new RuntimeException("API误用,根本不存在锁，你解什么锁?"));
              return false;
          }
      }
docs: 解锁
  注意：1、加锁和解锁必须配对地调用！
  2、解锁线程必须与加锁线程是同一个,即不支持那种异步回调解锁！
  
  @return true if unlock successfully otherwise false. We don't care how the unlock fails.