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,自己琢磨琢磨看着辦。。。
