摘要: 一、Spring体系架构 上面的图,我是在(4.3.27.RELEASE)版本中找到的。地址:https://docs.spring.io/spring/docs/4.3.27.RELEASE/spring-framework-reference/htmlsingle/#overview-modul 阅读全文
posted @ 2020-06-18 16:12 心动如雷 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 一 UML类图 1.1、ReentrantLock 通过类图ReentrantLock是同步锁,同一时间只能有一个线程获取到锁,其他获取该锁的线程会被阻塞而被放入AQS阻塞队列中。ReentrantLock类继承Lock接口;内部抽象类Sync实现抽象队列同步器AbstractQueuedSynch 阅读全文
posted @ 2020-06-08 15:04 心动如雷 阅读(603) 评论(0) 推荐(0) 编辑
摘要: 1、Unsafe知识点整理 2、代码: package com.javabasic.unsafe; import java.lang.reflect.Field; import sun.misc.Unsafe; /** * Unsafe如何使用 * * 1、使用Unsafe.getUnsafe(); 阅读全文
posted @ 2020-05-29 11:44 心动如雷 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 一、概述 ThreadLocal是JDK包提供的,它提供了线程本地变量,也就是如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地副本。当多个线程操作这个变量时,实际操作的是自己本地内存里面的变量,从而避免了线程安全问题。 二、实现原理 ThreadLoca 阅读全文
posted @ 2020-05-28 15:17 心动如雷 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 参考《深入理解Java虚拟机》 一、Java内存模型 1、Java内存模型 2、内存间交互操作 流程图: 3、volatile关键字 两个特性: 3.1、保证变脸对所有线程的可见性; 由于volatile变量只能保证可见性,在不符合两条规则的运算场景中,仍然需要通过枷锁来保证原子性。 ①运算结果并不 阅读全文
posted @ 2020-05-28 10:06 心动如雷 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1、概述 2、synchronized原理 3、字节码分析 Class组成: 引用参考:https://snailclimb.gitee.io/javaguide/#/docs/java/jvm/%E7%B1%BB%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84 举例1: p 阅读全文
posted @ 2020-05-26 17:19 心动如雷 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 一、概述 1、线程安全:ArrayList和LinkedList非线程安全的、Vector线程安全的,synchronized同步锁机制。 2、底层数据结构:ArrayList和Vector底层数据结构是数组;LinkedList双向链表。 3、时间复杂度是否受插入和删除元素位置影响:ArrayLi 阅读全文
posted @ 2020-05-21 14:56 心动如雷 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 一、UML类图 ConcurrentHashMap键值不能为null; 底层数据结构是数组+链表/红黑树; 采用CAS和synchronized来保证并发线程安全。 参考文章: CAS文章:https://blog.csdn.net/v123411739/article/details/795614 阅读全文
posted @ 2020-05-21 10:42 心动如雷 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1、概述 LinkedHashMap继承自HashMap;在HashMap基础上,通过维护一条双向链表,解决了HashMap键值对遍历顺序和插入顺序一致的问题。 想了解LinkedHashMap源码,首先需要了解HashMap源码。 2、原理 3、源码分析 结合我的《源码分析(1)-HashMap( 阅读全文
posted @ 2020-05-19 18:02 心动如雷 阅读(165) 评论(0) 推荐(0) 编辑
摘要: Java线程池 阅读全文
posted @ 2019-10-30 06:56 心动如雷 阅读(141) 评论(0) 推荐(0) 编辑