上来先吐槽一下新项目,一个月快速迭代了 4 个版本,每天加班到半夜 1~2 点,真是快吐血了。。。好在目前暂时稳定了下来,终于有点空闲的时间。闲着没事就来 TesterHome 看看,给自己充充电。看到几个关于 appium server 的帖子,有个地方不是很懂,想请教一下大家!

疑问

我看的几个帖子中,在启动 appium server 的时候都新开一个线程去执行 cmd 命令,为什么要这么做?比用主线程去开启 server 好在哪里?
比如下面两段代码的区别在哪里:

public static void startAppiumServer() {

      if (isPortUsing("127.0.0.1", 4723)) {
          stopAppiumServer();
      }

      new Thread(new Runnable(){

          @Override
          public void run() {
              String cmd = "cmd /c start appium";
              try {
                  Process p = Runtime.getRuntime().exec(cmd);
                  log.info("try to start appium server...");
              } catch (IOException e) {
                  e.printStackTrace();
              }
            }
          }

      ).start();

      try {
          Thread.sleep(10000);
      } catch (InterruptedException e) {
          e.printStackTrace();
      }
  }
public static void startAppiumServer() {

    if (isPortUsing("127.0.0.1", 4723)) {
        stopAppiumServer();
    }

    String cmd = "cmd /c start appium";
    try {
        Process p = Runtime.getRuntime().exec(cmd);
        log.info("try to start appium server...");
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        Thread.sleep(10000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}


↙↙↙阅读原文可查看相关链接,并与作者交流