一个微小的调优去掉嵌套的if,else

简介: 一个微小的调优去掉嵌套的if,else

精简代码


版本一


// 代码的原意是如果存在文件,就判断一个文件中内容有无,没有的话线程睡0.1s, 有的话跳出循环


while(true){
        if(Files.exists(Paths.get("data/mkcert/"+serialNo+".crt"))){
            Path path = Paths.get("data/mkcert/" + serialNo + ".crt");
            File file = new File(String.valueOf(path));
            if (0 == file.length()) {
                Thread.sleep(100);
            }else {
                break;
            }
        }
      }
• 11


版本二


改版是限制在2s 之内 避免上面的程序死循环


int tick = 0;
  while(tick++ < 20){
      if(Files.exists(Paths.get("data/mkcert/"+serialNo+".crt"))){
          File file = new File("data/mkcert/" + serialNo + ".crt");
          if (0 == file.length()) {
              Thread.sleep(100);
          }else {
              break;
          }
      }else {
          Thread.sleep(100);
      }
  }


版本三


改版是限制在2s 之内 反过来,当文件存在并且有内容 跳出循环 否在等待 少用了if嵌套


int tick = 0;
    while(tick++ < 20){
        File file = new File("data/mkcert/" + serialNo + ".crt");
        if(file.exists() && file.length() > 0){
                break;
        }
        Thread.sleep(100);
    }
相关文章
|
5月前
|
自然语言处理 算法 C++
在C++语言中非修正算法
在C++语言中非修正算法
34 1
|
5月前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
5月前
|
算法
【MFAC】基于紧格式动态线性化的无模型自适应迭代学习控制
【MFAC】基于紧格式动态线性化的无模型自适应迭代学习控制
【MFAC】基于紧格式动态线性化的无模型自适应迭代学习控制
|
5月前
|
算法 Go 区块链
YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块
YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块
63 0
|
5月前
函数依赖,闭包,覆盖,最小化基本集,部分函数依赖与完全函数依赖,传递函数依赖,候选键,外来建,逻辑蕴含
函数依赖,闭包,覆盖,最小化基本集,部分函数依赖与完全函数依赖,传递函数依赖,候选键,外来建,逻辑蕴含
34 0
|
编译器 测试技术 Go
不同写法的性能差异
不同写法的性能差异
59 0
|
编译器 测试技术 Go
不同写法的性能差异(1)
不同写法的性能差异(1)
55 0
|
测试技术 Go
不同写法的性能差异(2)
不同写法的性能差异(2)
60 0
|
程序员
相见恨晚的Matlab编程小技巧(2)-代码怎么做到逻辑清晰?——巧用注释符“%“
        本文将以教程的形式详细介绍Matlab中两个常用符号“%”和“%%”的作用。初学者可以通过此文掌握这两个符号的用法,为Matlab编程打下坚实的基础。
|
设计模式 JavaScript 前端开发
如何优雅的消除系统重复代码
在程序猿的日常工作中,不仅要跟随业务侧的发展不断开发新的需求,同时也需要维护老的已有平台。无论是开发新需求还是维护老系统,我们都会遇到同样一个问题,系统中总是充斥着很多重复的代码。
29539 11
如何优雅的消除系统重复代码