自定义博客皮肤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)
  • 收藏
  • 关注

原创 2.AbstractMap的源码解析

AbstractMap总结:1.AbsrtactMap是其他Map具体实现类的骨架实现2.AbstractMap实现Map接口,主要是对Map接口中的抽象方法进行重写,个别方法因为子类的不同特性在子类中进行具体实现实现3.在AbstractMap中,只没有对put()方法进行重写。4.在AbstractMap中,提供了两种Entry,可变Entry和不可变Entry,这两种均实现Map.E...

2019-12-05 16:23:01 153

原创 1.Map源码分析

Map是K,V集合的顶级接口,具体组成如下1.抽象方法size()isEmpty()put()putAll()get()remove()clear()containKey()containValue()2.三种视图的抽象方法Set keySet()Collection values()Set<Map.Entry<K,V>> entrySet...

2019-12-05 15:55:00 118

原创 12 JDK1.8 StampedLock源码解析

package com.xz.concurrent.locks;import java.util.concurrent.TimeUnit;/** * 1.since JDK 1.8 * 2.更加高效的读写锁的实现,不基于AQS实现,但还是利用CLH队列对线程进行管理 * 3.内部具有三种模式:写模式 读模式 乐观读模式(一个写锁 一个悲观读锁 一个乐观读锁) * 4.乐观读:在读数...

2019-12-02 13:45:19 139

原创 11.JDK 1.8 ReentrantReadWriteLock源码分析

package com.xz.concurrent.locks;import java.util.Collection;import java.util.concurrent.TimeUnit;/** * 1.简介:读写锁(一个读锁 一个写锁) 在读操作使用读锁 在写操作使用写锁 当写锁被获取到 后续的读写操作都会被阻塞 * 2.特点:支持公平锁和非公平锁 可重入锁 锁降价(写锁降低...

2019-11-22 16:57:52 127 1

原创 10.JDK1.8 ReentrantLock源码解析

package com.xz.concurrent.locks;import java.util.Collection;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Con...

2019-11-21 15:29:00 80

原创 8.AQS源码分析共享式获取同步状态和释放同步状态

一.共享式获取同步状态1.acquireShared /** * 共享式获取锁 * tryAcquireShared()尝试获取同步状态 当返回值>0时,代表到获取同步状态 */ public final void acquireShared(int arg) { if (tryAcquireShared(arg) < 0) {...

2019-10-30 17:16:50 113

原创 9.LockSupport源码解析

package com.xz.concurrent.locks;/** * 类简介:用来阻塞当前线程和唤醒指定被阻塞的线程 park() unpark(Thread thread)实现的 * 实现:调用unpark(thread) , 会将线程的许可permit设置为1, * 调用park()方法时,若将当前线程的permit是1.将permit的值设置为0,并立即返回,若当前线程的pe...

2019-10-29 15:25:00 73

原创 7.AQS源码分析之独占式获取锁和释放锁

一.AbstraactQueuedSynchronizer(AQS)1.队列同步器,提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架2.基于模板方法模式3.使用方式:继承该类作为一个内部辅助类实现同步原语 并重写指定方法4.实现思路:AQS内部维护一个CLH队列来管理锁 双向链表的队列。线程会首先 尝试获取锁,若失败,则将当前线程以及等到状态等信息包装成一 ...

2019-10-28 18:59:28 198

原创 6.Striped64源码解析

Striped64是包内类,是LongAddr、LongAccumulator、DoubleAddr、DoubleAccumulator 累机器类的底层实现package com.xz.concurrent.atomic;import java.util.concurrent.ThreadLocalRandom;import java.util.function.DoubleBinaryO...

2019-10-25 15:20:01 240

原创 5.JDK 1.8 AtomicMarkableReference源码解析

AtomicStampedReference的实现与该类相似package com.xz.concurrent.atomic;/** * 在原子变量类中 对于引用类型的操作,用于解决CAS的ABA问题 * AtomicMarkableReference:带boolean类型的引用型原子量 每次执行CAS操作都需要比较该标记位 * 若版本吗,满足要求 则操作成功 版本不满足要求 则操作失...

2019-10-16 10:03:20 149

原创 4. JDK 1.8 AtomicInteferFieldUpdater源码解析

package com.xz.concurrent.atomic;/** * @author xuanzhou * @date 2019/10/14 16:54 */import java.lang.reflect.Field;import java.lang.reflect.Modifier;import java.security.AccessController;impo...

2019-10-14 17:42:04 91

原创 3.JDK 1.8 AtomicIntegerArray源码解析

package com.xz.concurrent.atomic;/** * @author xuanzhou * @date 2019/10/14 12:00 * 使用场景:对一系列的整数进行同步更新,可以使用AtomicIntegerArray; * 用原子数组更新int数组的元素 */import java.util.function.IntBinaryOperator;...

2019-10-14 16:53:04 87

原创 2.JDK 1.8 AtomicInteger源码解析

package com.xz.concurrent.atomic;import java.util.function.IntBinaryOperator;import java.util.function.IntUnaryOperator;import sun.misc.Unsafe;/** * 保证int类型变量在多线程的情况下线程安全。 */public class At...

2019-10-14 14:15:48 153

原创 1. JDK 1.8 Unsafe类源码解析

package com.xz.sun.misc;/* 类:执行硬件级别的原子操作,该类中均为native方法,连接Java应用程序和操作系统底层的方法, 使用单例模式。不安全的操作集合,通过内存地址存取fields(double-register,single-register)。 两大功能: 绕过JVM,直接修改内存对象 使用硬...

2019-10-12 15:02:01 249

原创 11.SpringBoot+SpringCloud+Feign+Eureka搭建微服务

一.使用技术SpringBoot:2.1.8.RELEASESpringCloud:Greenwich.SR3EurekaFeign:feign底层使用ribbon作为负载均衡的客户端,结合Eureka完成负载均衡。是声明式的客户端。二.Eureka服务注册中心Eureka服务注册中心的创建三.服务生产者(service)服务注册中心的创建四.消费者的创建(Feign)1.创...

2019-09-20 11:19:21 1905

原创 10.SpringBoot+SpringCloud+RestTemplate+Ribbon搭建微服务

一.简介SpringBoot:2.1.8版本SpringCloud:Greenwich.SR3Java:1.8本文使用SpringCloud+SprigBoot+Eureka+Ribbon完成微服务搭建Eureka:作为服务注册中心Ribbon:SpringCloud的负载均衡服务二.实现过程1.搭建服务注册中心...

2019-09-19 16:35:34 754

原创 设计模式--单例模式

一.简介1.分类:创建型设计模式2.定义:在内存中只含有一个对象,该对象自行创建,外部不能创建该对象3.适用场合:在应用程序的整个生命周期中,对象是有一个实例的时候使用单例模式。单例模式总是在第一次被访问时初始化 直到应用程序退出之前,会一直使用这一个实例。4.如何确保类在内存中只有一个对象构造方法私有化在成员区给出该对象的引用(必须私有化,静态)写...

2018-08-03 11:46:09 71

空空如也

空空如也

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

TA关注的人

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