自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

翻身已碰头的博客

破帽遮颜,漏船载酒

  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 AQS系列之Condition解析

AQS系列之AbstractQueuedSynchronizer基础分析AQS系列之以排斥锁分析AQS系列之共享锁解析AQS系列之共享锁的应用解析:SemaphoreAQS系列之共享锁的应用解析:CountDownLatchAQS系列之排斥锁的应用解析:ReentrantLockAQS系列之排斥锁和共享锁的结合:ReentrantReadWriteLockAQS系列之Condition解析AQS系列之Condition解析一、简介一、简介Condition是AQS中基于排斥锁的另一

2022-01-14 23:36:34 1407

原创 限流系列之RateLimiter解析(二):SmoothWarmingUp

限流系列之RateLimiter解析(一):SmoothBursty限流系列之RateLimiter解析(二):SmoothWarmingUp限流系列之RateLimiter解析(二):SmoothWarmingUp一、简介二、创建和初始化一、简介SmoothWarmingUp是guava提供的另一个限流工具类,与SmoothBursty不同的是,SmoothWarmingUp在固定速度的基础上增加了预热流程,可以更好的应对突发流量。另外,在初始化和小流量时更慢得进行流量得提供也符合实际的应用场

2021-12-31 23:36:59 1366

原创 限流系列之RateLimiter解析(一):SmoothBursty

限流系列之RateLimiter解析(一):SmoothBursty限流系列之RateLimiter解析(一):SmoothBursty一、简介1. 类图2. 原理二、创建和初始化一、简介限流是服务治理的重要工具,在google的guava包里提供了关于速率限流器RateLimiter,可以帮助我们针对速率进行限流。1. 类图2. 原理SmoothBursty是关于限流算法中令牌桶算法的一个实现,通过固定速率生成令牌,当流量进入时,申请令牌,令牌充足时则直接获取成功,不充足时返回等待时间。

2021-12-30 23:31:44 1058

原创 AQS系列之排斥锁和共享锁的结合:ReentrantReadWriteLock

AQS系列之AbstractQueuedSynchronizer基础分析AQS系列之以排斥锁分析AQS系列之共享锁解析AQS系列之共享锁的应用解析:SemaphoreAQS系列之共享锁的应用解析:CountDownLatchAQS系列之排斥锁的应用解析:ReentrantLockAQS系列之排斥锁和共享锁的结合:ReentrantReadWriteLockAQS系列之排斥锁和共享锁的结合:ReentrantReadWriteLock一、简介1. Sync2. state3. ReadLock

2021-12-29 22:37:12 444

原创 AQS系列之排斥锁的应用解析:ReentrantLock

AQS系列之AbstractQueuedSynchronizer基础分析AQS系列之以排斥锁分析AQS系列之共享锁解析AQS系列之共享锁的应用解析:SemaphoreAQS系列之共享锁的应用解析:CountDownLatchAQS系列之排斥锁的应用解析:ReentrantLockAQS系列之排斥锁的应用解析:ReentrantLock一、简介一、简介...

2021-12-28 21:40:52 536

原创 AQS系列之共享锁的应用解析:CountDownLatch

AQS系列之AbstractQueuedSynchronizer基础分析AQS系列之以排斥锁分析AQS系列之共享锁解析AQS系列之共享锁的应用解析:SemaphoreAQS系列之共享锁的应用解析:CountDownLatchAQS系列之共享锁的应用解析:CountDownLatch一、简介二、获取资源三、释放资源一、简介CountDownLatch即倒排计数,是AQS共享锁的另一个经典应用。其应用主要是一个(或多个)线程等待一系列线程完成某些操作后才继续向下执行的场景。换种程序上的描述

2021-12-28 00:03:07 479

原创 AQS系列之共享锁的应用解析:Semaphore

AQS系列之AbstractQueuedSynchronizer基础分析AQS系列之以排斥锁分析AQS系列之共享锁解析AQS系列之共享锁的应用解析:SemaphoreAQS系列之共享锁的应用解析:Semaphore一、简介1. Sync2. state3. 对外方法二、资源获取acquire1. 非公平锁1. 公平锁三、资源释放一、简介Semaphore即信号量,常用于同时限制访问某些资源的线程数量。其内部抽象类Fair继承了AQS,Semaphore正是通过Sync实现数量的控制1.

2021-12-27 23:46:58 547

原创 AQS系列之共享锁解析

AQS系列之AbstractQueuedSynchronizer基础分析AQS系列之以排斥锁分析AQS系列之共享锁解析AQS系列之共享锁解析一、获取资源1. 获取资源acquireShared2. 排队获取资源二、释放资源一、获取资源1. 获取资源acquireSharedpublic final void acquireShared(int arg) { if (tryAcquireShared(arg) < 0) doAcquireShared(arg)

2021-12-26 19:30:19 691

原创 AQS系列之以排斥锁分析

系列文章目录AQS系列之AbstractQueuedSynchronizer基础分析AQS系列之以排斥锁分析AQS系列之以排斥锁分析系列文章目录一、获取资源1. 获取资源acquire2. 加入队列addWaiter3. 排队获取资源acquireQueued4. 阻塞检查shouldParkAfterFailedAcquire二、释放资源1. 释放资源release2. 唤醒后继节点unparkSuccessor三、获取&释放资源总流程四、其他获取资源的方法1. 响应中断acquireIn

2021-12-25 19:14:19 686

原创 AQS系列之AbstractQueuedSynchronizer基础分析

AQS系列之AbstractQueuedSynchronizer基础分析@[TOC]AQS系列之AbstractQueuedSynchronizer和CLH队列一、简介AQS是JDK并发包中的一个抽象类,全称为AbstractQueuedSynchronizer,即抽象队列同步器,是一系列同步实现的模板类,如锁Lock,信号量Semaphore,倒排计数器CoundDownLatch等都是基于AQS实现的,同时还提供了Condition对象,其await和sign、signAll对象可以用于代替O

2021-12-25 14:59:23 577

原创 SpringMVC源码解析之RequestMappingHandlerMapping:getHandler

SpringMVC源码解析之ServletSpringMVC源码解析之GenericServlet和HttpServletSpringMVC源码解析之DispatcherServlet:生命周期init()和destroy()SpringMVC源码解析之DispatcherServlet:请求处理SpringMVC源码解析之RequestMappingHandlerMapping:getH...

2019-06-24 11:11:22 2882

原创 SpringMVC源码解析之RequestMappingHandlerMapping:初始化

SpringMVC源码解析之ServletSpringMVC源码解析之GenericServlet和HttpServletSpringMVC源码解析之DispatcherServlet:生命周期init()和destroy()SpringMVC源码解析之DispatcherServlet:请求处理一、HandlerMapping1. 简介前面的博客已经提到,HandlerMapping...

2019-06-21 15:40:00 4299

原创 SpringMVC源码解析之DispatcherServlet:请求处理

SpringMVC源码解析之ServletSpringMVC源码解析之GenericServlet和HttpServletSpringMVC源码解析之DispatcherServlet:生命周期init()和destroy()一、FrameworkServlet1. FrameworkServlet#service(HttpServletRequest, HttpServletRespon...

2019-06-05 14:25:21 555

原创 SpringMVC源码解析之DispatcherServlet:生命周期init()和destroy()

SpringMVC源码解析之ServletSpringMVC源码解析之GenericServlet和HttpServlet

2019-05-27 11:57:33 961

原创 SpringMVC源码解析之GenericServlet和HttpServlet

SpringMVC源码解析(一):Servlet一、GenericServlet从类名上就能看出,GenericServlet是一个一般性的,与协议无关的Servlet类。GenericServlet作为Servlet接口的默认实现,主要实现了下面功能1. 实现了ServletConfig接口GenericServlet实现了ServletConfig接口,可以通过Genericervl...

2019-05-24 09:40:39 450

原创 SpringMVC源码解析之Servlet

一、ServletServlet是JavaWeb的核心接口,运行在web服务器中,负责接收来自web客户端的请求并作出响应。Servlet接口定义了5个方法。(1)init方法负责Servlet的初始化,在servlet被加入到web容器时由容器调用,只会被调用一次。如tomcat容器会在StandardWrapper#initServlet(Servlet)中调用该初始化方法。(2)...

2019-05-20 17:14:36 367

原创 Queue常用类解析之BlockingQueue(五):LinkedTransferQueue

Queue常用类解析之PriorityQueueQueue常用类解析之ConcurrentLinkedQueueQueue常用类解析之BlockingQueue(一):PriorityBlockingQueue、DelayQueue和DelayedWorkQueueQueue常用类解析之BlockingQueue(二):ArrayBlockingQueueQueue常用类解析之Blocki...

2019-05-17 15:19:56 1257

原创 Queue常用类解析之BlockingQueue(四):SynchronousQueue

Queue常用类解析之PriorityQueueQueue常用类解析之ConcurrentLinkedQueueQueue常用类解析之BlockingQueue(一):PriorityBlockingQueue、DelayQueue和DelayedWorkQueueQueue常用类解析之BlockingQueue(二):ArrayBlockingQueueQueue常用类解析之Blocki...

2019-05-13 11:47:54 629

原创 Queue常用类解析之BlockingQueue(三):LinkedBlockingQueue

Queue常用类解析之PriorityQueueQueue常用类解析之ConcurrentLinkedQueueQueue常用类解析之BlockingQueue(一):PriorityBlockingQueue、DelayQueue和DelayedWorkQueueQueue常用类解析之BlockingQueue(二):ArrayBlockingQueue接着上文对BlockingQueu...

2019-04-23 14:19:59 399

原创 Queue常用类解析之BlockingQueue(二):ArrayBlockingQueue

Queue常用类解析之PriorityQueueQueue常用类解析之ConcurrentLinkedQueue接着上文对BlockingQueue的介绍继续向下五、ArrayBlockingQueue从命名可以看出,这是一个循环数组表示的的阻塞队列。与前面介绍的BlockingQueue不同,ArrayBlockingQueue在入队和出队时都有可能会陷入阻塞。1. 属性/** T...

2019-04-22 16:54:43 1066

原创 Queue常用类解析之BlockingQueue(一):PriorityBlockingQueue、DelayQueue和DelayedWorkQueue

Queue常用类解析之PriorityQueueQueue常用类解析之ConcurrentLinkedQueue一、简介BlockingQueue是concurrent包下的一个并发Queue的接口,称为阻塞队列。与ConcurrentLinkedQueue通过CAS方式来实现并发不同,BlockingQueue的并发方案是阻塞等待。Jdk为BlockingQueue提供了不少的实现类,...

2019-04-22 09:23:14 1806

原创 Queue常用类解析之ConcurrentLinkedQueue

Queue常用类解析之PriorityQueue

2019-04-21 16:59:20 463

原创 Queue常用类解析之PriorityQueue

一、接口介绍Queue :Collection的子接口,先进先出的集合。BlockingQueue:Queue的子接口,阻塞式队列,线程安全的队列,主要用于多线程场景尤其是线程池中。TransferQueue:BlockingQueue的子接口,一个生产者-消费者模式的队列,生产者会阻塞等待着消费者对元素进行消费。二、PriorityQueue优先级队列,队列内的元素按照一定的顺序进行排...

2019-04-17 10:25:58 785

原创 并发集合之CopyOnWriteArrayList和CopyOnWriteArraySet

一、简介CopyOnWrite的意思是写时复制,简单的说就是在对容器操作时,不是直接进行操作,而是先将容器复制一份,对新的容器操作后,再用新的容器覆盖原来的容器。CopyOnWrite可以实现并发读操作,因为容器的写操作不会读当前容器造成影响。CopyOnWrite的写操作需要加锁,不然n个写操作就会有n个容器副本,并且这n个副本会进行覆盖,最终只有1个副本的操作生效。CopyOnWrit...

2019-04-16 10:53:02 300

原创 Map源码解析之WeakHashMap

Map源码解析之HashMapMap源码解析之HashMap红黑树Map源码解析之HashMap补充:集合、迭代器、compute、merge、replaceMap源码解析之LinkedHashMapMap源码解析之TreeMapMap源码解析之HashTable Map源码解析之ConcurrentHashMap(JDK1.8)(一)Map源码解析之ConcurrentHashMa...

2019-04-12 15:49:42 303

原创 引用解析之Reference和ReferenceQueue

一、引用类型Java通过引用来访问对象,从jdk1.2开始,Java将引用分为以下4种类型,强度依次减弱。(1)强引用 Strong Reference日常开发中最经常使用的引用类型,例如Object object = new Object()使用的就是强引用。当一个对象的强引用存在,这个对象用于不会被回收。在Java中没有专门的类与之对应。(2)软引用 Soft Reference软引...

2019-04-12 13:51:58 1744

原创 Map源码解析之ThreadLocalMap

Map源码解析之HashMapMap源码解析之HashMap红黑树Map源码解析之HashMap补充:集合、迭代器、compute、merge、replaceMap源码解析之LinkedHashMapMap源码解析之TreeMapMap源码解析之HashTable Map源码解析之ConcurrentHashMap(JDK1.8)(一)Map源码解析之ConcurrentHashMa...

2019-04-10 15:54:26 1104

原创 Map源码解析之ConcurrentHashMap(JDK1.7)

Map源码解析之HashMapMap源码解析之HashMap红黑树Map源码解析之HashMap补充:集合、迭代器、compute、merge、replaceMap源码解析之LinkedHashMapMap源码解析之TreeMapMap源码解析之HashTable Map源码解析之ConcurrentHashMap(JDK1.8)(一)Map源码解析之ConcurrentHashMa...

2019-04-09 15:13:13 407

原创 线程池ScheduledThreadPoolExecutor源码解析

一、简介ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类,继承了父类对线程的管理维护功能,通过还可以执行延迟和定时任务。/* * This class specializes ThreadPoolExecutor implementation by * * 1. Using a custom task type, ...

2019-04-08 12:01:43 1965 1

原创 线程池源码解析之FutureTask

一、简介1. 类继承关系2. 状态private volatile int state;private static final int NEW = 0;private static final int COMPLETING = 1;private static final int NORMAL = 2;private static final i...

2019-04-08 11:58:31 671

原创 线程池ThreadPoolExecutor源码解析

一、简述线程池维护着一定的线程数量,通过线程复用减少了线程频繁开启销毁的消耗。当新任务提交到线程池时:如果线程池中任务数量小于核心线程数量,启动新线程执行任务。如果线程池中任务数量大于或等于核心线程数量,且队列未满,将任务加入队列。如果线程池中任务数量大于或等于核心线程数量,但小于最大线程数量,且队列已满,启动新线程执行任务。如果线程池中任务数量等于最大线程数量,且队列已满,执行拒绝策...

2019-04-02 10:51:57 201

原创 Mybatis源码解析之分页插件pagehelper分析

Mybatis源码解析之核心类分析Mybatis源码解析之初始化分析Mybatis源码解析之执行流程解析Mybatis源码解析之数据库连接和连接池Mybatis源码解析之事务管理Mybatis源码解析之缓存机制(一):一级缓存Mybatis源码解析之缓存机制(二):二级缓存Mybatis源码解析之插件机制Mybatis源码解析之mapper接口的代理模式Mybatis源码解析之D...

2019-03-28 16:18:19 1970

原创 Mybatis源码解析之SpringBoot集成mybatis-spring-boot-starter分析

Mybatis源码解析之核心类分析Mybatis源码解析之初始化分析Mybatis源码解析之执行流程解析Mybatis源码解析之数据库连接和连接池Mybatis源码解析之事务管理Mybatis源码解析之缓存机制(一):一级缓存Mybatis源码解析之缓存机制(二):二级缓存Mybatis源码解析之插件机制Mybatis源码解析之mapper接口的代理模式Mybatis源码解析之D...

2019-03-28 11:33:00 14107 1

原创 Mybatis源码解析之懒加载(三):序列化

Mybatis源码解析之核心类分析Mybatis源码解析之初始化分析Mybatis源码解析之执行流程解析Mybatis源码解析之数据库连接和连接池Mybatis源码解析之事务管理Mybatis源码解析之缓存机制(一):一级缓存Mybatis源码解析之缓存机制(二):二级缓存Mybatis源码解析之插件机制Mybatis源码解析之mapper接口的代理模式Mybatis源码解析之D...

2019-03-26 16:42:09 1438

原创 Mybatis源码解析之懒加载(二):ProxyFactory

Mybatis源码解析之核心类分析Mybatis源码解析之初始化分析Mybatis源码解析之执行流程解析Mybatis源码解析之数据库连接和连接池Mybatis源码解析之事务管理Mybatis源码解析之缓存机制(一):一级缓存Mybatis源码解析之缓存机制(二):二级缓存Mybatis源码解析之插件机制Mybatis源码解析之mapper接口的代理模式Mybatis源码解析之D...

2019-03-26 11:18:18 1439 1

原创 Mybatis源码解析之懒加载(一):配置和ResultLoaderMap

Mybatis源码解析之核心类分析Mybatis源码解析之初始化分析Mybatis源码解析之执行流程解析Mybatis源码解析之数据库连接和连接池Mybatis源码解析之事务管理Mybatis源码解析之缓存机制(一):一级缓存Mybatis源码解析之缓存机制(二):二级缓存Mybatis源码解析之插件机制Mybatis源码解析之mapper接口的代理模式Mybatis源码解析之D...

2019-03-26 10:29:32 859

原创 Mybatis源码解析之DefaultResultSetHandler的handleResultSets方法解析

Mybatis源码解析之核心类分析Mybatis源码解析之初始化分析Mybatis源码解析之执行流程解析Mybatis源码解析之数据库连接和连接池Mybatis源码解析之事务管理Mybatis源码解析之缓存机制(一):一级缓存Mybatis源码解析之缓存机制(二):二级缓存Mybatis源码解析之插件机制Mybatis源码解析之mapper接口的代理模式ResultSetHand...

2019-03-25 09:52:12 6556

原创 Mybatis源码解析之Spring集成mybatis-spring分析

Mybatis源码解析之核心类分析Mybatis源码解析之初始化分析Mybatis源码解析之执行流程解析Mybatis源码解析之数据库连接和连接池Mybatis源码解析之事务管理Mybatis源码解析之缓存机制(一):一级缓存Mybatis源码解析之缓存机制(二):二级缓存Mybatis源码解析之插件机制前面的几篇相关博客都针对原生的mybatis进行解析,从本文开始将针对myba...

2019-03-21 13:48:11 1012 1

原创 Mybatis源码解析之mapper接口的代理模式

Mybatis源码解析之核心类分析Mybatis源码解析之初始化分析Mybatis源码解析之执行流程解析Mybatis源码解析之数据库连接和连接池Mybatis源码解析之事务管理Mybatis源码解析之缓存机制(一):一级缓存Mybatis源码解析之缓存机制(二):二级缓存Mybatis源码解析之插件机制一、简介在mybatis中执行sql时有两种方式,一种是基于statemen...

2019-03-20 17:13:29 1668

原创 Mybatis源码解析之插件机制

Mybatis源码解析之核心类分析Mybatis源码解析之初始化分析Mybatis源码解析之执行流程解析Mybatis源码解析之数据库连接和连接池Mybatis源码解析之事务管理Mybatis源码解析之缓存机制(一):一级缓存Mybatis源码解析之缓存机制(二):二级缓存为了保证程序的扩展性,提供使用者在框架基础上增强自定义的逻辑处理,mybatis提供了一种基于拦截器的插件机制。...

2019-03-19 15:09:39 634 1

redis安装工具及界面化管理工具

redis安装工具及界面化管理工具,可以通过该工具对redis进行界面化管理而不需要命令

2018-10-22

空空如也

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

TA关注的人

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