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

    
    
  • 相关阅读:
    Saruman's Army
    Best Cow Line
    Lake Counting
    题目1417:变形金刚
    Ants
    mysql学习笔记--数据库事务
    mysql学习笔记--数据库视图
    mysql学习笔记--数据库多表查询
    mysql学习笔记--数据库单表查询
    mysql学习笔记--数据操作
  • 原文地址:https://www.cnblogs.com/silyvin/p/9448012.html
Copyright © 2011-2022 走看看