Thread A = new Thread(new Runnable(){
@Override
public void run() {
try {
System.out.println("A-----");
code1(startTime, endTime/2, sdf, timeMap);
}
finally {
}
}
});
Thread C = new Thread(new Runnable(){
@Override
public void run() {
try {
System.out.println("B-----");
code1(endTime/2,endTime,sdf,timeMap);
}finally {
}
}
});
A.start();
C.start();
code1:
public void code1(Long startTime, Long endTime, SimpleDateFormat sdf, Map<String, Map<String, CarStateVo>> timeMap) {
for (Long i = startTime + 1000; i <= endTime; i += 1000) {
//每一秒要進行查詢
//先把上一秒的資料放進來
String dateOld = sdf.format(new Date(i - 1000));
String date2 = sdf.format(new Date(i));
//現將上一秒的資料放入
timeMap.put(date2, timeMap.get(dateOld));
Map<String, CarStateVo> carStateVos = new HashMap<>();
//現將上一秒的資料放入
carStateVos.putAll(timeMap.get(date2));
/*LambdaQueryWrapper<CarStateCai> lambdaQ = Wrappers.lambdaQuery();
lambdaQ.eq(CarStateCai::getUpdateTime,new Date(i));
List<CarStateCai> list1 = this.list(lambdaQ);*/
Map<String, Object> map = new HashMap<>();
map.put("update_time", new Date(i));
List<CarStateCai> list1 = carStateMapper.selectByMap(map);
//判斷查詢的是否有資料
//在這查詢如果沒有就要上一個了
if (list1.size() > 0) {
for (CarStateCai carStateCai : list1) {
if (carStateCai.getCarNum() != null && !"".equals(carStateCai.getCarNum())) {
//讀取redis中的資訊
String value = redisService.getValue(carStateCai.getCarNum());
CarStateDto carStateDto1 = JSON.parseObject(value, CarStateDto.class);
CarStateVo carStateVo = getCarStateVo(carStateDto1, carStateCai);
//如果有數就會被覆寫
carStateVos.put(carStateVo.getCarNum(), carStateVo);
}
}
String date1 = sdf.format(new Date(i));
System.out.println(date1+"運行");
timeMap.put(date1, carStateVos);
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/284336.html
標籤:Java EE
上一篇:java賦值后輸出全是0.
下一篇:求助,為什么執行緒中的方法不執行
