自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Future 框架基本原理及执行流程

文章目录前言一、Future基本应用及基本构造1.基本应用二、执行流程分析1.executorService.submit(new PrintTask("哈哈"))2.异步任务执行execute(ftask)3.FutureTask的run4.FutureTask的get总结 前言 本文基于个人理解对Future异步任务的执行流程及原理进行简单的总结。 一、Future基本应用及基本构造 FutureTask的基本UML图。 1.基本应用 public class TestFutrueTask {

2021-07-12 17:27:26 561

原创 基于ReentrantReadWriteLock的读写锁应用及简要原理分析

文章目录前言一、基本应用二、源码基本分析1.构造函数2.wl.lock()3.wl.unlock()4.rl.lock()4.rl.unlock()总结 前言   在研发中经常会遇到数据一致性的问题,如使用redis缓存并使用mq等方式对缓存进行异步更新。当两个线程在同一个时间段分别进行读缓存和写缓存时便可能会出现缓存不一致的情况。如果要完全规避这种情况,那就必须采用加锁或其他方式进行处理。本文依据个人理解对ReentrantReadWriteLock进行简要的原理分析。 一、基本应用   虽然此示例是

2021-07-01 16:01:30 137

原创 spring getBean及循环依赖基本流程分析

文章目录前言一、Bean的三级缓存及简单bean的实例化过程二、循环依赖 前言   本文基于大佬 文章并结合个人理解进行了一个简单的流程整理,仅供参考,欢迎交流。 一、Bean的三级缓存及简单bean的实例化过程   在bean的实例化过程中,spring使用了3个缓存,这3个缓存是互斥的,即其中一个存有bean的缓存则其他2两个便没有。具体定义如下: /** Cache of singleton objects: bean name to bean instance. */ private final

2021-03-09 20:53:33 203

原创 ThreadPoolExecutor简单原理流程

文章目录前言一、原理流程 前言 本文基于大佬的文章按照自己的理解画了一个流程图用于辅助理解。 一、原理流程 woker的存活就是用getTask()的轮训获取任务队列里面的逻辑来控制的。简单的理解就是,如果核心线程数范围内的线程在allowCoreThreadTimeOut=false的情况下会一直轮训获取任务队列里面的任务并执行不会销毁。而核心线程数到最大线程数的范围内的线程会在keepAliveTime内获取任务,如果不能获取到任务则会进入销毁流程。 ...

2021-03-03 16:40:17 128 1

原创 ThreadLocal基本源码分析

文章目录前言一、ThreadLocal基本源码分析二、理解总结 前言 系统中的登录上下文使用了ThreadLocal来记录每个请求里面用户的基本信息。用户的登录校验是通过拦截器解析请求中的cookie做相关校验。当校验通过后,loginContext中将存储用户基本信息供后续接口调用使用。在项目开发中,由于缺乏对ThreadLocal的深刻认识导致出现过一次惊魂的线上bug。 一、ThreadLocal基本源码分析 1、首先是创建一个ThreadLocal的holder变量,holder=new Thre

2021-03-02 16:37:16 154

原创 spring源码学习-BeanDefinition的创建和注册

BeanDefinition的创建和注册前言一、开门见山1、Debug 入口,窥探spring的内部运行流程 前言 纯属个人学习总结,仅供参考,欢迎交流。 一、开门见山 1、Debug 入口,窥探spring的内部运行流程 public static void main(String[] args) { String path="/.../spring-config.xml"; ApplicationContext applicationContext = new FileSystemXmlAp

2021-02-22 10:18:07 249

原创 基于枚举的单例模式及Enum原理

基于枚举的单例模式及Enum原理基本概述双检测同步单例模式基于枚举的单例模式枚举代替类实现单例模式 基本概述 项目中经常用到基于双检测的同步单例模式,但是这种模式存在被反射和序列化攻破的缺点。在effective java 中提到了使用基于枚举的单例模式,这种单例模式能有效规避上述缺点。基于个人学习理解进行如下总结。 双检测同步单例模式 public class DoubleCheckSingleBean { private String name; // volatile修饰 保证线程同步

2021-02-19 14:19:19 249

空空如也

空空如也

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

TA关注的人

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