IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java使用多线程下载 -> 正文阅读

[Java知识库]java使用多线程下载

并行和并发有什么区别?

  • 并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。

  • 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。

  • 在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群。

线程和进程的区别?

  • 进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高。

  • 线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位。同一进程中的多个线程之间可以并发执行。

代码如下

方式一:

package Java.Thread;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URL;
//创建线程方式一:继承Thread,重写run方法
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.download(url,name);
        System.out.println("下载了文件名"+name);

    }

    public static void main(String[] args) {
        TestThread2 t1 = new TestThread2("https://c-ssl.duitang.com/uploads/blog/202008/20/20200820180927_dfzpj.thumb.300_300_c.jpg","1.jpg");
        TestThread2 t2 = new TestThread2("https://c-ssl.duitang.com/uploads/item/202004/06/20200406193332_levbg.thumb.300_300_c.jpg","2.jpg");
        TestThread2 t3 = new TestThread2("https://c-ssl.duitang.com/uploads/item/202004/27/20200427160432_mhjwn.thumb.300_300_c.jpg","3.jpg");

        t1.start();
        t2.start();
        t3.start();
    }
}

class WebDownloader {
    public void download(String url,String name){
        try {
            FileUtils.copyURLToFile(new URL(url),new File(name));
        }
        catch (IOException e) {
            e.printStackTrace();
            System.out.println("IO异常");
        }
    }
}

方式二

package Java.Thread;

import org.apache.commons.io.FileUtils;

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

//创建线程方式2:实现runnable接口,重写run方法,执行线程需要丢入runnable接口,调用start方法
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() {
        WebDownLoader2 downLoader2 = new WebDownLoader2();
        downLoader2.download(url,name);
        System.out.println("下载了文件名" + name);
    }

    public static void main(String[] args) {
        TestThread3 t1= new TestThread3("https://dl.stream.qqmusic.qq.com/C400003qyCb24Rhq7G.m4a?guid=1009329214&vkey=EBAD796F5C4C03506E5A1AECD46DD5903E129E67F83DE2E68EF83DE43ED7A47C5AF920D9A762313F3DDBD776389A0E8BD53E181FF50F375B&uin=1064432866&fromtag=66","水山少年梦.mp3");
        TestThread2 t2 = new TestThread2("http://img1.gamedog.cn/2021/04/23/5649562-2104231049560.jpg","2.jpg");
        TestThread2 t3 = new TestThread2("http://img1.gamedog.cn/2021/04/23/5649562-2104231045460.jpg","3.jpg");

        new Thread(t1).start();
        new Thread(t2).start();
        new Thread(t3).start();
    }
}
class WebDownLoader2{
    public void download(String url,String name){
        try {
            FileUtils.copyURLToFile(new URL(url),new File(name));
        }
        catch (IOException e) {
            e.printStackTrace();
            System.out.println("IO异常");
        }
    }
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:33:07  更:2022-04-30 08:33:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:12:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码