多线程下载
时间:2021-11-30
本文章向大家介绍多线程下载,主要包括多线程下载使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
多线程下载网站图片,start启动(多线程交互执行)
1 package com.student_thread.demo; 2 import org.apache.commons.io.FileUtils; 3 import java.io.File; 4 import java.io.IOException; 5 import java.net.URL; 6 /*
①写上一个下载器,将下载器的jar包加入library
②将这个测试线程类继承线程
③将构造器中的属性复制到公共属性中
④重写run方法,run方法是线程的执行体
⑤执行顺序就是主函数启动,TestThread2中的url地址和照片名称参数传入构造器
⑥构造器得到参数赋值给公共属性
⑦TestThread2实例化的对象用start启动线程
⑧这个时候运行重写的run()
⑨webDownloader.downloader(url,name);调用下载器且执行FileUtils.copyURLToFile(new URL(url),new File(name));函数
⑩最后输出System.out.println("下载了文件"+name);
*/
7 8 public class TestThread2 extends Thread { 9 String url; 10 String name; 11 public TestThread2(String url,String name){ 12 this.url=url; 13 this.name=name; 14 } 15 16 @Override 17 public void run() { 18 WebDownloader webDownloader=new WebDownloader(); 19 webDownloader.downloader(url,name); 20 System.out.println("下载了文件"+name); 21 22 } 23 24 public static void main(String[] args) { 25 TestThread2 T1=new TestThread2("http://我的服务器/img/img.png","img.png"); 26 TestThread2 T2=new TestThread2("http://我的服务器/img/profile.jpg","profile.png"); 27 T1.start(); 28 T2.start(); 29 } 30 } 31 //下载器 32 class WebDownloader{ 33 public void downloader(String url,String name){ 34 try { 35 FileUtils.copyURLToFile(new URL(url),new File(name)); 36 } catch (IOException e) { 37 e.printStackTrace(); 38 System.out.println("io异常,downloader出现问题"); 39 } 40 } 41 }
原文地址:https://www.cnblogs.com/gzg-blogs/p/15624737.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 用 80 行 Javascript 代码构建自己的语音助手
- 手把手教你搭建分布式项目环境
- GraphQL两年实战避坑经验
- 基于Dubbo的服务提供者与消费者的发布(在虚拟机中)以及使用nginx对项目进行负载均衡优化
- 我们为什么不使用CSS框架
- java.lang.IllegalArgumentException: node to traverse cannot be null!
- Spring Data Jpa 异常:PropertyReferenceException: No property xxx found for type for type yyy
- Spring全家桶之SpringData——SpringData Redis(附相关jar包)
- Spring全家桶之SpringBoot——初级阶段
- Spring全家桶之SpringBoot——高级阶段
- feign.FeignException$MethodNotAllowed: status 405 reading xxx#yyy(Integer)
- No serializer found for class 类名 and no properties discovered to create BeanSerializer
- 三步让你在Linux中发布SpringCloud项目
- 【赵渝强老师】MySQL高可用架构:MHA
- Python终极调试指南