问题描述
publicvoidrun(){for(TlcLogStddelivertable:listTable){System.out.println("正在传送当前第"+DatatransfersBo.n+"条数据");System.out.println("手机号---------"+table.getVc2srcmobile());System.out.println("手机内容"+table.getVc2messagecontent());//数据库存在乱码,手机号为空,手机内容为空更新状态值为1if(MessyCodeCheck.isMessyCode(table.getVc2messagecontent())||null==table.getVc2srcmobile()||""==table.getVc2srcmobile()||null==table.getVc2messagecontent()||""==table.getVc2messagecontent()){getDao().update("updateTlcLogStddeliversetproStatus='1'wherenumseqid=?",newObject[]{table.getNumseqid()});DatatransfersBo.n++;//更新状态值为1}//手机内容为XA开始的if(null!=table.getVc2messagecontent()&&table.getVc2messagecontent().length()>5&&table.getVc2messagecontent().substring(0,2).equals(DatatransfersBo.C1)&&table.getProStatus().equals("0")){StringXAURL=ConfigUtil.getConfig().getString(ConfigUtil.XA_URL_PATH);//URL传参服务器返回状态值Stringstate=DatatransfersBo.handlerSendURL("m="+URLEncoder.encode(table.getVc2srcmobile())+"&c="+URLEncoder.encode(table.getVc2messagecontent().substring(table.getVc2messagecontent().lastIndexOf('/')+1)).replaceAll("\+","%20")+"",XAURL);//判断返回状态如果为OK则更新表状态为1if(state.equals(DatatransfersBo.SUCCESS)){getDao().update("updateTlcLogStddeliversetproStatus='1'wherenumseqid=?",newObject[]{table.getNumseqid()});DatatransfersBo.n++;}else{System.out.println("服务器接收失败");//重新传DatatransfersBo.i--;}}//手机内容为XZ开始的将状态置为1if(null!=table.getVc2messagecontent()&&table.getVc2messagecontent().length()>5&&table.getVc2messagecontent().substring(0,2).equals(DatatransfersBo.C3)){getDao().update("updateTlcLogStddeliversetproStatus='1'wherenumseqid=?",newObject[]{table.getNumseqid()});DatatransfersBo.n++;}//内容为XB开始的将状态置为1if(null!=table.getVc2messagecontent()&&table.getVc2messagecontent().length()>5&&table.getVc2messagecontent().substring(0,2).equals(DatatransfersBo.C2)&&table.getProStatus().equals("0")){StringXBURL=ConfigUtil.getConfig().getString(ConfigUtil.XB_URL_PATH);//URL传参返回状态值Stringstate=DatatransfersBo.handlerSendURL("m="+URLEncoder.encode(table.getVc2srcmobile())+"&c="+URLEncoder.encode(table.getVc2messagecontent().substring(table.getVc2messagecontent().lastIndexOf('/')+1)).replaceAll("\+","%20")+"",XBURL);//判断返回状态如果为OK则更新表状态为1if(state.equals(DatatransfersBo.SUCCESS)){getDao().update("updateTlcLogStddeliversetproStatus='1'wherenumseqid=?",newObject[]{table.getNumseqid()});DatatransfersBo.n++;}else{System.out.println("服务器接收失败");//重新传DatatransfersBo.i--;}}DatestartDate=newDate();DateendDate=newDate();System.out.println("结束时间:"+(newSimpleDateFormat("HH:mm:ss").format(endDate)));System.out.println("总共用多少时间"+(endDate.getTime()-DatatransfersBo.startDate.getTime())/1000+"(秒)");}}调用它的时候是并行十个线程,然后在这里有不同的IF,还有数据库更新逻辑,如果我现在不用册步,也不用锁,会出现死锁情况吗?