zoukankan      html  css  js  c++  java
  • 子线程指令重排

    CountDownLatch countDownLatch = new CountDownLatch(1);

    try{
    boolean anotherDay = checkAnotherDay();
    try{
    if(anotherDay) {
    String logUrlYestoday = logUrl;
    int index = logUrlYestoday.lastIndexOf(".");
    StringBuilder stringBuilder = new StringBuilder(100);
    stringBuilder.append(logUrlYestoday.substring(0, index+1)).append(dateIbFormate.format(lastTime)).append(".log");

    int res = readLogFile(stringBuilder.toString(), false);
    if(res == 0) {
    logger.info("read yesterday success");
    } else {
    logger.error("read yesterday error, {}", res);
    }
    }
    } catch (Exception e) {
    logger.error(e.getMessage(), e);
    } finally {
    countDownLatch.countDown();
    }

    countDownLatch.await();

    readLogFile(logUrl, true);

    } catch (Exception e) {
    logger.error(e.getMessage(), e);
    }

      

    在未使用CountDownLatch前,有出现最后一行

    readLogFile

     

    的数据先于前面的代码数据执行插入操作了,故为了确保数据有序性,加入CountDownLatch

     

    性质有点像:https://www.cnblogs.com/silyvin/p/9106641.html

    
    
  • 相关阅读:
    使用语句修改数据表结构
    C# 写日志到文件
    mysql 语句要求
    跨discuz站获取
    php 记录图片浏览次数次数
    js获取url传递参数值
    jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因
    mkfs
    mount
    dd
  • 原文地址:https://www.cnblogs.com/silyvin/p/9448012.html
Copyright © 2011-2022 走看看