多线程同步下载图片
- 下载conmmon-IO导入lib包中
- 练习Thread,实现多线程同步下载图片
package com.thread;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.net.URL;
//练习Thread实现多线程同步下载图片
public class TestThread02 extends Thread{
private String url;//网络图片地址
private String name;//保存的文件名
//创建构造器
public TestThread02(String url,String name){
this.url = url;
this.name = name;
}
@Override
public void run() {
WebDownloader webDownloader = new WebDownloader();
webDownloader.downloader(url,name);
System.out.println("下载了文件名为:"+name);
}
public static void main(String[] args) {
TestThread02 t1 = new TestThread02("http://pic.netbian.com/uploads/allimg/190824/220246-1566655366d857.jpg","1.jpg");
TestThread02 t2 = new TestThread02("http://pic.netbian.com/uploads/allimg/210216/205419-1613480059a058.jpg","2.jpg");
TestThread02 t3 = new TestThread02("http://pic.netbian.com/uploads/allimg/200312/235114-15840282746806.jpg","3.jpg");
//运行顺序和方法启动顺序无关
t1.start();
t2.start();
t3.start();
}
}
//下载器类
class WebDownloader{
//下载方法
public void downloader(String url,String name){
try {
FileUtils.copyURLToFile(new URL(url),new File(name));//使用FileUtils类的copyURLToFile方法将网页上的图片下载为文件
} catch (IOException e) {
e.printStackTrace();
System.out.println("IO异常,download方法出现问题");
}
}
}
- 最后发现,t1、t2、t3图片的下载顺序和方法顺序无关,且每次顺序都不同