我目前有一个项目,其中从在线CGI文件请求不同的参数,并且每个请求应该在不同的线程中处理。当我自己运行我的代码时它工作得很好,但是当我把它放在一个线程中它似乎没有连接。 我的代码如下:
public void run() {
connect();
}
public synchronized void connect(){
StringBuffer response = new StringBuffer("");
try {
String data = "year=" + year + "&top=" + numNames + "number=";
// Send data
URL url = new URL("http://www.ssa.gov/cgi-bin/popularnames.cgi");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
response.append(line);
}
wr.close();
rd.close();
} catch (Exception e) {
System.out.println(e);
}
System.out.println(response);
}
}
答案 0 :(得分:0)
删除connect上的同步调用。这应该可以解决你的问题
public synchronized void connect(){