求助,为什么线程中的方法不执行
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);
}
}
}