线程的基本应用

一、线程的基本应用(thread.join())

/**
     * 保存等级保护定级备案申请信息
     */
    public void saveBash() throws Exception {
        String success = "";
        //得到前台传入的验证码
        String code = this.getRequest().getParameter("code");
        //得到session存入的验证码
        String yanZhenMa = this.getRequest().getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY).toString();

        if(!code.equalsIgnoreCase(yanZhenMa)){
            renderText("输入的验证码有误");
        }else{
            //得到请求唯一编号
            onlyCode = DummyServer.createOnlyCode("BJBH");
            //用于生成业务流水号的xml文件
            String xmlFile = DummyServer.createSblshReqXml(onlyCode,"30000031900754268913440300");
            //向uplond目录写文件
            DummyServer.createReqXmlFile(onlyCode,xmlFile);   
           
            //线程
            Thread thread = new Thread(){
                public void run(){
                    try{
                        String path = (new ReadXml().getClass().getResource("/").toString()+"data_download/").replace("file:/", "").replace("%20", " ");
                        String fileName = onlyCode+".xml";
                        File file = new File(path+fileName);
                        if(file.exists()){
                            //取申办流水号
                            sblsh = Base.readXml(file);
                            file.delete();
                            return;
                        }
                        Thread.sleep(200);
                        run();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            };
            //开启线程
            thread.start();
            //线程执行完成后(即file.exists()为ture时,链接下面的代码)
            thread.join();   
           
            //添加受理编号
            entity.setSlbh(sblsh);   
           
            //统一平台列名、列值集合集合
            Map<String,String> map = fhMap(entity);
           
            //受理状态对象
            WjBajv wjBajv = new WjBajv();
            wjBajv.setSlbh(sblsh);
            //保存等级保护定级备案申请信息、向统一平台插入数据
            success = manager.saveWjBash(entity,map,wjBajv);
           
            if(("1".equals(success))){
                renderText("备案成功,受理编号为:"+sblsh);
            }else{
                renderText("服务器出现异常,请重新备案!");
            }
        }
    }

猜你喜欢

转载自x125858805.iteye.com/blog/1947189