1

求助,为什么线程中的方法不执行

 2 years ago
source link: https://bbs.csdn.net/topics/399173134
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

求助,为什么线程中的方法不执行

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);
            }
        }
    }

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK