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();
}
}
Java多线程学习——图片下载的更多相关文章
- Java多线程学习笔记
进程:正在执行中的程序,其实是应用程序在内存中运行的那片空间.(只负责空间分配) 线程:进程中的一个执行单元,负责进程汇总的程序的运行,一个进程当中至少要有一个线程. 多线程:一个进程中时可以有多个线 ...
- Java多线程学习(转载)
Java多线程学习(转载) 时间:2015-03-14 13:53:14 阅读:137413 评论:4 收藏:3 [点我收藏+] 转载 :http://blog ...
- java多线程学习笔记——详细
一.线程类 1.新建状态(New):新创建了一个线程对象. 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于可运行线程池中, ...
- 【转】Java多线程学习
来源:http://www.cnblogs.com/samzeng/p/3546084.html Java多线程学习总结--线程概述及创建线程的方式(1) 在Java开发中,多线程是很常用的,用得好的 ...
- JAVA多线程学习笔记(1)
JAVA多线程学习笔记(1) 由于笔者使用markdown格式书写,后续copy到blog可能存在格式不美观的问题,本文的.mk文件已经上传到个人的github,会进行同步更新.github传送门 一 ...
- Java多线程学习(六)Lock锁的使用
系列文章传送门: Java多线程学习(二)synchronized关键字(1) Java多线程学习(二)synchronized关键字(2) Java多线程学习(三)volatile关键字 Java多 ...
- Java多线程学习(五)线程间通信知识点补充
系列文章传送门: Java多线程学习(二)synchronized关键字(1) Java多线程学习(二)synchronized关键字(2) Java多线程学习(三)volatile关键字 Java多 ...
- Java多线程学习(四)等待/通知(wait/notify)机制
转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79690279 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...
- Java多线程学习(三)volatile关键字
转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79680693 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...
随机推荐
- HDU - 1024 Max Sum Plus Plus 最大m段子段和+滚动数组优化
给定n个数字,求其中m段的最大值(段与段之间不用连续,但是一段中要连续) 例如:2 5 1 -2 2 3 -1五个数字中选2个,选择1和2 3这两段. dp[i][j]从前j个数字中选择i段,然后根据 ...
- app 进入后台进行模糊处理
金融类app防止信息在后台中被一些恶意截屏软件进行截屏,对进入后台的app做模糊处理 - (void)applicationWillResignActive:(UIApplication *)appl ...
- squid之------安装与基本配置
1.rpm安装squid yum -y install squid 2.squid主要组成部分 服务名:squid 主程序:/usr/sbin/squid 配置目录:/etc/squid 主配置文件: ...
- Connection refused 排查过程
Connection refused 排查过程 connection refused 排查 起因 今天在连接 rabbitmq 时,报 Connection refused (如下图),借此机会记 ...
- pandas的corsstab
pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=F ...
- Codeforces 950C Zebras ( 贪心 && 模拟 )
题意 : 给出一个 01 串,要求你将其分隔出若干个子序列 ( 每个数字只能属于某一个子序列 ) ,子序列必须满足由 0 开头和结尾,且中间需 01 交替构成.若无法做到,则输出 -1. 分析 : ...
- 【BZOJ4570】 [Scoi2016]妖怪
Description 邱老师是妖怪爱好者,他有n只妖怪,每只妖怪有攻击力atk和防御力dnf两种属性.邱老师立志成为妖怪大师,于 是他从真新镇出发,踏上未知的旅途,见识不同的风景.环境对妖怪的战斗力 ...
- Cisco基础(三):HSRP配置、三层交换配置HSRP、STP的配置、三层交换配置STP
一.HSRP配置 目标: 在企业网络到外部的连接方案中,要求不高的条件下可以是单出口.一旦该出口线路出现问题,整个企业网络就不能连接到外网了.为了使得企业网络到外网连接的高可用性,可以设置两个以上的出 ...
- sh_02_第一个while循环
sh_02_第一个while循环 # 打印 5 遍 Hello Python # 1. 定义一个整数变量,记录循环次数 i = 1 # 2. 开始循环 while i <= 3: # 1> ...
- EF 视图查询坑
EF 视图在查询的时候如果主键一样则默认的数据都是第一条查询的数据