多线程 (二)实现一个图片下载。练手

83 阅读1分钟

一 开发准备。下载包,加载jar 包

commons.apache.org/proper/comm…

image.png

二 方法一实现 。

2.1 实现下载方法

package com.company;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URL;

//方式一实现 .
public class TestThread2 extends Thread {
    private String url;
    private String name;


    public TestThread2() {
    }

    public TestThread2(String url, String name) {
        this.url = url;
        this.name = name;
    }

    @Override
    public void run() {
        WebDownLoader downLoader = new WebDownLoader();
        downLoader.downloader(url, name);
    }
}


2.2 继续Threawd实现 。

package com.company;

//实现多线程下载图片
public class TestThread2 extends Thread {
    private String url;
    private String name;

    public TestThread2(String url, String name) {
        this.url = url;
        this.name = name;
    }

    @Override
    public void run() {
        WebDownLoader downLoader = new WebDownLoader();
        downLoader.downloader(url, name);
        //super.run();
    }
}

//在main 中调用。

TestThread2 t1 = new TestThread2("https://s2.xuxing.tech/28.jpg", "28.jpg");
TestThread2 t2 = new TestThread2("https://s2.xuxing.tech/16.jpg", "16.jpg");
TestThread2 t3 = new TestThread2("https://s2.xuxing.tech/26.jpg", "26.jpg");
t1.start();
t2.start();
t3.start();

2.3 使用Runable 实现 。 。

package com.company;

//实现多线程下载图片
public class TestThread3 implements Runnable {
        private String url;
        private String name;

        public TestThread3(String url, String name) {
            this.url = url;
            this.name = name;
        }

        @Override
        public void run() {
            WebDownLoader downLoader = new WebDownLoader();
            downLoader.downloader(url, name);
        }
}

在main 方法中调用。

package com.company;

public class Main {

    public static void main(String[] args) {


        TestThread3 t1 = new TestThread3("https://s2.xuxing.tech/28.jpg", "28.jpg");
        TestThread3 t2 = new TestThread3("https://s2.xuxing.tech/16.jpg", "16.jpg");
        TestThread3 t3 = new TestThread3("https://s2.xuxing.tech/26.jpg", "26.jpg");


        new Thread(t1).start();
        new Thread(t2).start();
        new Thread(t3).start();

    }
}