mybatis返回map对象,在线程内将getkey值后赋值给stirng,会线程卡死问题
// 创建定时任务ScheduledFuture<?> future = scheduler.scheduleAtFixedRate(createTk(rule),initialDelay,calculateFixedRate(getCron(rule)),TimeUnit.MILLISECONDS);scheduledTasks.put(rule.getId(), future);}private Runnable createTk(Rule rule) {return () -> {ConcurrentHashMap<String,Object> dto = roleService.execExecsql("1");Integer id = (Integer) dto.get("id");String Code = (String) dto.get("code");try {test.sendmsg(id,code);} catch (Exception e) {throw new RuntimeException(e);}};}
问题原因 是返回ConcurrentHashMap<String,String> ,但是我查询的id返回的时Int类型 这个时候,执行这个代码,线程会卡死 具体原因还不清楚 Integer idPatient = (Integer) dto.get("id"); 要慎用最好是不要<String,String>这样写泛型,改成<String,Object>解决