Java - 在线程完成之前我将如何执行?

时间:2017-05-30 13:14:29

标签: java multithreading threadpool java-threads

我是Java世界的新手,我开始使用Thread,有一些我无法理解的东西。 我的代码如下:

    public void setSectionPage(String strSection) throws IOException{
         WebClient oWebClient = this._oWebClient;      
         // Create a new BotProcess to use Threads :D
         BotProcess bpBot = new BotProcess(){
             public void run(){
                 System.out.println("Loading: " + this.getURL());
                 try {
                    this.setoVictimWeb(oWebClient.getPage(this.getURL()));
                    System.out.println("1" + this.getoVictimWeb());
                 } catch (IOException ex) {
                    Logger.getLogger(Bot.class.getName()).log(Level.SEVERE, null, ex);
                 } catch (FailingHttpStatusCodeException ex) {
                    Logger.getLogger(Bot.class.getName()).log(Level.SEVERE, null, ex);
                 }
            }             
        }; 
        // Set the URL
        bpBot.setURL(this._strRootPage + strSection);
        // Start thread :D:D:D
        bpBot.start();
        // When the Thread finishes I'll get that VictimPage Object :D
        this._oVictimWeb = bpBot.getoVictimWeb();
        System.out.println("2" + bpBot.getoVictimWeb());
    }
  

注意:我正在使用HtmlUnit || BotProcess的类只扩展了Thread并实现了一些getter和setter。

控制台中的结果:

2null
Loading: www.google.com
1HtmlPage(www.google.com)@830191436

它必须像:

Loading: www.google.com
1HtmlPage(www.google.com)@830191436
2null

如果线程完成,我将如何执行? 另外,我在几个网页上工作,这意味着线程总是在不同的地方运行,是否可以推荐使用线程池?或者究竟是什么?

0 个答案:

没有答案