定时10分钟获得不到数据就结束?
这个你在线程run里加时间不就行了让它自动结束?
可以在对你的线程类设一个boolean stopFlag
在外面把这个stopFlag设为true,你线程就stop

解决方案 »

  1.   

    下面是子线程,没有做while循环,理论上说他执行完就会结束,但实际上有时候会一直停在那 
     class DownloadThread extends  Thread
      {
        WebSite webSite;
             DownloadThread(WebSite eWebSite)
             {
               this.webSite=eWebSite;
              }
             public void run(){
         HttpPostLogin login = null;
         DownloadData download = null;    try {
          //login = passLoginMethod(webSite);
          login = HttpPostLoginPoolManager.getHttpPostLogin(webSite);
          download = passMethod(login, webSite);
          HttpPostLoginPoolManager.returnHttpPostLogin(webSite,login);
          login = null;
        }
        catch (IOException ex) {
          log.info("logon web site [" + webSite.getSiteID() + "] error: " +
                   ex.getMessage());
        }
        catch (Exception ex) {
          log.info("download web data from [" + webSite.getSiteID() + "] error: " +
                   ex.getMessage());
        }
        if (download != null) {
             ///do
        }
          }
      }
      

  2.   

    线程的结束:1)自动结束
       run()方法结束了,该线程也结束了2)设置共享变量+interrupt方法
       
    3)join方法
      

  3.   

    kenli(心相续-信解行证) ( ) 信誉:99  2005-01-21 17:46:00  得分: 0  
     
     
       httpclient你要设置timeout.
      
     --------------------------------------------------
    因为页面有一个login,所以我把login后的状态保存在池里,如果直接设置httpclient超时的话,显然是不行了,因为过期后就要重新登陆了,所以是不是有更好的办法
      

  4.   

    在你的主线程里面创建子线程的时候保留好对象句柄,然后调用stop方法可以关闭它。DownloadThread  dt = new DownloadThread ();
    dt.start();线程启动
    以后想关闭它的时候可以
    dt.stop(); 强制关闭子线程,释放子线程占用的所有资源