引言:使用多线程下载图片可以大幅度的提升下载速度,基于封装理念把可以抽离出来的代码全部抽离。 代码思路:就是先把需要下载的文件放入一个集合,再下载到一个临时目录,在压缩,最后删除临时目录中的下载文件。 下载 设置Header import java.util.HashMap; /** * @auth ...
分类:
编程语言 时间:
2020-06-21 13:39:37
阅读次数:
51
1、Java中实现多线程有几种方法 继承Thread类;实现Runnable接口;实现Callable接口通过FutureTask包装器来创建Thread线程;使用ExecutorService、Callable、Future实现有返回结果的多线程(也就是使用了ExecutorService来管理前 ...
分类:
编程语言 时间:
2020-06-20 16:24:33
阅读次数:
116
前言- 本系列随笔 会深入浅出,解析java多线程的各种技术及实现。 随笔主要根据 《java并发编程的艺术》一书作为参考。 本系列以使用为主要目的,本人理解有限,还望读者辩证采纳,没有过多涉及源码的讨论,重在初学者的使用,理解伪码。 预备知识:1. volatile 关键字需要有一定理解 2. A ...
分类:
编程语言 时间:
2020-06-19 18:03:24
阅读次数:
64
Java多线程之Lock(锁) 定义: 在Java多线程中,可以使用synchronized关键字实现线程之间的同步,在JDK5后新增的ReentrantLock类同样可达到此效果,且在使用上比synchronized更加灵活。 特征: 从JDK5开始,Java提供了更强大的线程同步机制——通过显式 ...
分类:
编程语言 时间:
2020-06-18 21:15:29
阅读次数:
61
摘要: 本文旨在介绍java多线程中的一些基础概念,同时也是自己的多线程学习总结。本文将围绕以下几点展开讲解:线程的定义、java内存模型、并发及同步、java的happens-before原则,最后介绍java中的synchronized以及volatile关键字。 线程及其定义 线程的基本定义 ...
分类:
编程语言 时间:
2020-06-18 19:27:36
阅读次数:
60
多线程的并发和并行 并发:指两个或多个事件在同一个时间段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生)。 多线程进程 线程的概念 ...
分类:
编程语言 时间:
2020-06-17 20:16:10
阅读次数:
51
Java多线程中Thread与Runnable的区别 定义 extends Thread 子类继承Thread具备多线程能力,可以实现多线程; 启动线程的方法:①创建子类对象 ②对象名.start(); 不建议使用:避免多线程OOP单继承的局限性(OOP:Object Oriented Progra ...
分类:
编程语言 时间:
2020-06-16 20:13:32
阅读次数:
63
两种实现方式继承Thread类或者实现Runnable接口 使用实现Runnable接口和继承Thread类这两种开辟新线程的方法的选择应该优先选择实现Runnable接口这种方式去开辟一个新的线程。因为接口的实现可以实现多个,而类的继承只能是单继承。因此在开辟新线程时能够使用Runnable接口就 ...
分类:
编程语言 时间:
2020-06-16 10:23:10
阅读次数:
55
死锁: 是指两个或者两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,他们都将无法推进下去 产生死锁的原因: 互相争夺共享资源 产生死锁的必要条件: 互斥条件:共享资源被一个线程占用 请求与保持条件(占有且等待):一个进程因请求资源而阻塞时,对已获得的资源保持 ...
分类:
编程语言 时间:
2020-06-16 00:59:12
阅读次数:
93
昨天,由于工作比较繁忙,只是简单整理了一下java的线程的生命周期的流程图,今天就根据这个流程图来一步一步的讲解java多线程的知识。 图再来一遍: 第一点、java线程新生态的生成 也就是线程新建成功 1、继承Thread类(为了方便添加线程名字,可以自定义构造方法),代码如下: public c ...
分类:
编程语言 时间:
2020-06-11 01:17:00
阅读次数:
72