zoukankan      html  css  js  c++  java
  • Java多线程学习——图片下载

    实现多线程方式1:继承类Thread——重写方法run——调用方法start

    从网络下载图片首先要增加包commons-io.jar

    import org.apache.commons.io.FileUtils;
    import java.io.File;
    import java.io.IOException;
    import java.net.URL;
    
    /**
     * 下载图片
     */
    
    public class WebDownLoader {
    
        /**
         * 下载工具
         * @param url
         * @param name
         */
        public void download(String url,String name){
            try {
                FileUtils.copyURLToFile(new URL(url),new File(name));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }
    public class TDownloader extends Thread{
        String url;
        String name;
    
        public TDownloader(String url, String name) {
            this.url = url;
            this.name = name;
        }
    
        @Override
        public void run() {
            WebDownLoader webDownLoader=new WebDownLoader();
            webDownLoader.download(url,name);
        }
    
        public static void main(String[] args) {
            TDownloader t1=new TDownloader("http://pic28.nipic.com/20130424/3822951_142421949000_2.jpg","photo1.jpg");
            TDownloader t2=new TDownloader("http://pic1.win4000.com/wallpaper/2018-01-23/5a669e431688c.jpg","photo2.jpg");
            TDownloader t3=new TDownloader("http://pic1.win4000.com/wallpaper/6/57a2ea76bcc06.jpg","photo3.jpg");
    
            t1.start();
            t2.start();
            t3.start();
        }
    }

     实现多线程方式2:实现Runnable——重写run()方法——new Thread( 实现了Runnable接口的对象 ).start

    下载工具类和上面一样,实现多线程的类变了

    public class TDownloader implements Runnable{
        String url;
        String name;
    
        public TDownloader(String url, String name) {
            this.url = url;
            this.name = name;
        }
    
        @Override
        public void run() {
            WebDownLoader webDownLoader=new WebDownLoader();
            webDownLoader.download(url,name);
        }
    
        public static void main(String[] args) {
            TDownloader t1=new TDownloader("http://pic28.nipic.com/20130424/3822951_142421949000_2.jpg","photo1.jpg");
            TDownloader t2=new TDownloader("http://pic1.win4000.com/wallpaper/2018-01-23/5a669e431688c.jpg","photo2.jpg");
            TDownloader t3=new TDownloader("http://pic1.win4000.com/wallpaper/6/57a2ea76bcc06.jpg","photo3.jpg");
    
            new Thread(t1).start();
            new Thread(t2).start();
            new Thread(t3).start();
        }
    }
  • 相关阅读:
    CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
    telnet: Unable to connect to remote host: Connection refused
    bash: telnet: command not found (Linux安装telnet)
    telnet: Unable to connect to remote host: No route to host
    IP地址转换函数
    Linux 网络通信 API详解【转载】
    高效算法求解数独
    Java创建List、Map等集合对象的同时进行赋值操作
    根据先序遍历和中序遍历建立二叉树
    继承内部类时使用外部类对象.super()调用内部类的构造方法
  • 原文地址:https://www.cnblogs.com/chiweiming/p/11082251.html
Copyright © 2011-2022 走看看