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