自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (7)
  • 收藏
  • 关注

原创 网络基础(三) — HTTPS

HTTP协议存在的安全问题,及HTTPS协议对HTTP协议存在问题的修正。

2020-03-28 15:30:28 2739

原创 网络基础(二) — HTTP

HTTP一、概述二、HTTP 持久连接、管线化三、HTTP请求方法四、HTTP 报文4.1 响应状态码2XX 成功3XX 重定向4XX 客户端错误5XX 服务端错误一、概述HTTP (HyperText Transfer Protocol): 超文本传输协议。HTTP 是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP 是无状态协议,即每次 HTTP 请求之间都是...

2020-03-27 00:20:16 303

原创 OkHttp(二) — Interceptor 拦截器

Interceptor 拦截器一、概述二、RetryAndFollowUpInterceptor三、BridgeInterceptor四、CacheInterceptor五、ConnectInterceptor六、CallServerInterceptor一、概述OkHttp 版本: 3.14.7在 OkHttp(一) — OkHttp 调用流程分析 中,我们介绍了一个请求的调用流程。请求...

2020-03-22 16:38:51 692

原创 OkHttp(一) — OkHttp 调用流程分析

OKHttp 调用流程分析一、概述二、三、四、一、概述二、三、四、

2020-03-21 19:24:13 833

原创 并发容器(四) — DelayQueue 源码解析

DelayQueue 源码解析一、概述二、源码解析1. 入队2. 出队3. 延迟功能的实现一、概述DelayQueue 是一个无界阻塞队列,它提供了在指定时间才能获取队列元素的功能,队列头元素是最接近过期的元素 (通过最小堆实现)。DelayQueue 队列本身不具备存储能力,而是在内部通过 PriorityQueue 队列来实现存储功能和获取最近过期元素功能。PriorityQueue ...

2020-03-19 18:18:15 195

原创 并发容器(三) — PriorityBlockingQueue(优先队列)源码解析

PriorityBlockingQueue源码解析一、概述二、三、一、概述PriorityBlockingQueue 是一个支持优先级的无界阻塞队列。队列内部使用 数组 存储数据。由于数组初始化时,长度已经确定,而PriorityBlockingQueue又是一个无界队列,因此内部存在自动扩容机制 (类似ArrayList)。PriorityBlockingQueue 使用最小堆来实现...

2020-03-19 14:36:12 246

原创 数据结构 — 二叉堆

二叉堆一、概述二、堆的两种类型1. 最大堆2. 最小堆三、代码实现一、概述二叉堆本质上是一种完全二叉树,二叉堆有两种类型:最大堆最小堆完全二叉树:数据结构—完全二叉树二、堆的两种类型1. 最大堆什么是最大堆呢?最大堆任何一个父节点的值,都大于等于它左右孩子节点的值。2. 最小堆什么是最小堆呢?最小堆任何一个父节点的值,都小于等于它左右孩子节点的值。三、代码实现...

2020-03-18 23:16:32 408

原创 并发容器(二) — ArrayBlockingQueue源码解析

ArrayBlockingQueue源码解析一、概述二、源码解析1. 构造函数2. 实际入队、出队的操作3. 有阻塞功能的入队、出队操作4. 有超时且非阻塞的入队、出队操作三、小结一、概述ArrayBlockingQueue 是一个用数组实现的有界阻塞队列。ArrayBlockingQueue的数据结构:上图涉及:ReentrientLock、Condition、BlockingQueu...

2020-03-17 16:27:10 189 1

原创 并发容器(一) — 综述

综述一、概述二、三、一、概述在并发编程中,有时需要使用线程安全的队列。实现一个线程安全的队列有两种方式:第一种方式:使用阻塞算法,使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现。第二种方式:使用非阻塞算法。非阻塞的实现方式是使用循环CAS的方式来实现。JDK中提供了如下并发容器。二、三、...

2020-03-17 14:05:21 169

原创 Lock(五) — LockSupport 和 Condition接口

LockSupport 和 Condition接口一、概述二、Condition 接口与示例1. 使用示例2. Condition 接口三、Condition 实现原理1. 等待队列2. 等待3. 通知4. Condition 的应用四、LockSupport一、概述任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上)。主要包括 wait()、wait(lo...

2020-03-15 22:15:57 300

原创 Lock(四) — 可重入锁(ReentrantLock)源码解析

ReentrantLock源码解析一、概述二、ReentrantLock 类图三、源码解析1. ReentrantLock 的使用2. ReentrantLock 锁的获取四、小结1. 如何实现公平锁?2. 如何实现非公平锁?一、概述重入锁: 当该锁被线程A持有时,线程A仍可以重新获取该锁。公平锁: 在获取锁时,如果线程A先对锁进行获取,则当锁释放后,线程A优先获得锁。非公平锁: 在获取锁...

2020-03-15 17:03:57 342

原创 Lock(三) — 自定义AQS (实践)

自定义AQS一、概述二、自定义AQS三、调试一、概述上一篇分析了 Lock(二) — 队列同步器(AQS)浅析 后,这里自己实现一个AQS。二、自定义AQS// 自定义一个独占锁(同一时刻,只有一条线程可以访问资源)public class CustomLock implements Lock { // 自定义同步器 class Sync extends AbstractQ...

2020-03-15 10:13:06 311

原创 Lock(二) — 队列同步器(AQS)浅析

队列同步器 AQS 一、概述二、同步器的方法1. 同步器可重写的方法2. 同步器中的模板方法三、独占式1. 获取同步状态( acquire(int arg) )四、共享式一、概述队列同步器 AbstractQueuedSynchronizer(简称AQS),是用来构建锁或者其他同步组件的基础框架。AQS 依托于一个 volatile 修饰的变量 state 进行状态管理,AQS 内部提供了如...

2020-03-14 22:55:38 304

原创 Lock(一) — 综述

在并发编程中,可以通过关键字 `synchronized` 和 `Lock` 来实现同步访问。

2020-03-14 22:55:00 230

原创 Executor框架(四) — ThreadPoolExecutor源码解析

ThreadPoolExecutor源码解析一、概述二、ThreadPoolExecutor 执行任务示意图三、ThreadPoolExecutor 源码分析1. 构造参数的含义2. 常量补码的相关知识runState 几种状态的说明3. 提交任务execute()submit()4. addWorker(Runnable firstTask, boolean core) 方法5. Worker ...

2020-03-08 12:34:38 319

原创 Executor框架(三) — 几种常见的线程池

几种常见的线程池一、概述二、ThreadPoolExecutor 线程池1. FixedThreadPool2. SingleThreadExecutor3. CachedThreadPool三、ScheduledThreadPoolExecutor线程池一、概述如下图所示,Executor框架中线程池的类型有如下2种:ThreadPoolExecutor、ScheduledThreadPoo...

2020-03-04 17:21:26 851

原创 Executor框架(二) — 线程池原理浅析

线程池的浅析一、概述二、线程池实现原理2.1 线程池实现原理2.2 ThreadPoolExecutor的实现方案1. ThreadPoolExecutor执行execute()方法的示意图如下:2. JDK1.8 `ThreadPoolExecutor.execute()` 代码如下:三、线程池的使用3.1 线程池的创建3.2 提交任务3.3 关闭线程池3.4 合理分配线程池3.5 线程池的监控...

2020-03-04 14:15:17 315

数据结构与算法分析(中文版)_韦斯

数据结构与算法是计算机编程的一个重要组成部分,在通往高级工程师的道路上是一段不可绕过的路程;

2018-04-14

automate_online-materials

Python自动化的配套课程资源 包含Excel处理、PDF处理、Word处理、图像处理、邮件定时发送等功能

2018-02-06

Python爬虫(网络数据采集)

Python网络爬虫、数据爬取、分析。。。。。。。。。。。。。

2018-02-03

Two Scoops of Django 1.11- 2017(Daniel Greenfeld).pdf

英文原著 Two Scoops of Django 文档字体清晰 喜欢看原版的可以直接下载本文档 英文原著 Two Scoops of Django 文档字体清晰 喜欢看原版的可以直接下载本文档 英文原著 Two Scoops of Django 文档字体清晰 喜欢看原版的可以直接下载本文档

2017-09-10

simian(代码重复检测工具)

simian(代码重复检测工具)

2016-12-10

graphviz-2.37

2016-11-28

停用词资源文件

‘停用词’ 资源文件,配合解析文本,获取有效的词汇,去除无意义的词汇。

2015-08-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除