zoukankan      html  css  js  c++  java
  • 循环中的多线程写法

    public void updateCameraFilmingTime() throws Exception {
       // 获取业务数据list,替换成自己的逻辑就好
       List<Map<String, String>> list = alarmVideoDao.getCameraList();
       ExecutorService service = Executors.newCachedThreadPool();
       CountDownLatch countDown = new CountDownLatch(list.size());
       for(Map<String,String> cameraInfo: list){
          Runnable runnable = new Runnable() {
             @Override
             public void run() {
                // 循环内部逻辑,替换成自己的逻辑就好
                List<Map<String, Date>> timeList = alarmVideoDao.getVideoRecodeTime(cameraInfo.get("code"));
                if (timeList.get(0) != null) {
                   alarmVideoDao.updateCameraFilmingTime(cameraInfo.get("code"),(Date)timeList.get(0).get("time"));
                }
                countDown.countDown();
             }
          };
          service.execute(runnable);
       }
       try {
          countDown.await();
       } catch (InterruptedException e) {
          e.printStackTrace();
       }
    }
    

      以上属于自己不会写多线程,抄就行,多线程对于我来说比较高深的,只能暂时写这样的例子替换,没有深入探究多线程,我之前两百多万的数据没写多线程之前要跑半个小时,改完多线程之后只跑了3分钟,效果很明显。但是多线程应用场景还是去别的博主那边查一查,不是所有的情况都适合多线程的。。。因为耗cpu,自己琢磨琢磨看着办。。。

  • 相关阅读:
    《Hadoop实战》第一章
    找工作必备技能
    范数的深刻解读(转自知乎)
    贝叶斯定理(贝叶斯分类)
    什么是机器学习?
    线性可分 与线性不可分
    正则化和归一化
    过拟合问题是什么?
    CVPR 2016 paper reading (6)
    CVPR 2016 paper reading (3)
  • 原文地址:https://www.cnblogs.com/cuteCoderSnow/p/13673925.html
Copyright © 2011-2022 走看看