多线程之继承Thread实现同步下载文件

导入依赖

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.7</version>
</dependency>

创建Thread2测试

public class Thread2 extends Thread {
    //网络地址
    private String url;
    //保存的文件名
    private String name;
    //构造函数
    public Thread2(String url, String name) {
        this.url = url;
        this.name = name;
    }
    //3、下载文件的线程执行体
    @Override
    public void run() {
        FileDownLoader fileDownLoader = new FileDownLoader();
        fileDownLoader.downLoader(url,name);
        System.out.println("下载了文件名为:" + name);
    }
    //4、主线程执行
    public static void main(String[] args) {
        Thread2 t1 = new Thread2("https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=1887333225,3220403259&fm=26&gp=0.jpg","紫霞仙子.jpg");
        Thread2 t2 = new Thread2("https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=1115306696,372850764&fm=26&gp=0.jpg","冰霜恋舞曲.jpg");
        Thread2 t3 = new Thread2("https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3005655293,1504161907&fm=26&gp=0.jpg","元素使.jpg");
        //开启线程
        t1.start();
        t2.start();
        t3.start();
    }
}
//2、下载器
class FileDownLoader{
  // 下载方法
  public  void downLoader(String url,String name) {
      try {
          FileUtils.copyURLToFile(new URL(url),new File(name));
      } catch (IOException e) {
          e.printStackTrace();
          System.out.println("IO异常:downLoader方法出错");
      }
  }
}
posted @ 2020-11-03 10:53  Tenton  阅读(144)  评论(0)    收藏  举报