java多线程下载图片,求救
用多个子线程从网页下载图片,用到httpclient包
主要代码如下:
//从url地址下载图片到电脑目录
public void saveToFile(String destUrl,String pathName)
{
HttpClient client = new HttpClient();
GetMethod get = new GetMethod(destUrl);
try
{
client.executeMethod(get);
File storeFile = new File(pathName);
FileOutputStream output = new FileOutputStream(storeFile);
//得到网络资源的字节数组,并写入文件
output.write(get.getResponseBody());
output.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
程序流程:
thread1 run()
{
获取所有图片地址;
for(1...n)
{
对每一个地址,新建一个新的子线程用于保存文件;
}
.....
}
thread2 run()
{
savaToFile(..,..);
}
例如一个网页上有n张图片,首先新建一个线程thread1进行获取每个图片地址,然后在这个线程里创建n个子线程,每个子线程都是执行saveToFile函数的操作,用于保存图片文件。
问题是:当我不用多线程保存图片文件时,也就是一张一张的下载,下载下来的图片数量是正确的,而用多线程下载的图片数量却少了一些。请教高手,小弟对多线程不是非常了解,谢谢!!!