JAVA并发编程
文章平均质量分 75
AmongDec
想成为一个更优秀的人
展开
-
200行代码实现接口限流,探究开源项目eladmin接口限流原理
eladmin的接口限流是如何实现的呢?eladmin的接口限流是如何实现的呢?1、下载eladmin后端项目2、接下来我们用idea打开项目,分析注解3、AOP切入解析注解eladmin的接口限流是如何实现的呢?今天闲来无事的时候,看了一下eladmin这个开源项目。发现了其中真的有非常多我们可以借鉴的地方。今天我们就来看看eladmin中接口限流这个小功能是如何实现。可能会对你之后的项目有所帮助。这里预先给大家说一下他的实现用到了如下技术:自定义注解Spring提供的Aopredis+lu原创 2021-08-04 16:55:12 · 649 阅读 · 3 评论 -
JAVA并发编程(二十二)StampedLock锁如何使用?看这一篇就够了
JAVA并发编程(二十二)StampedLock锁如何使用?看这一篇就够了JAVA并发编程(二十二)StampedLock锁如何使用?看这一篇就够了1、StampedLock是什么呢?2、StampedLock的三种模式2.1、写锁(WriteLock)2.2悲观读锁(readLock)2.3、乐观读锁(tryoptimisticRead)3、案例展示JAVA并发编程(二十二)StampedLo...原创 2020-01-13 17:34:01 · 605 阅读 · 0 评论 -
JAVA并发编程(二十一)ReentrantReadWriteLock看这一篇就够了
JAVA并发编程(二十一)ReentrantReadWriteLock看这一篇就够了JAVA并发编程(二十一)ReentrantReadWriteLock看这一篇就够了1、初探ReentrantReadWriteLock2、写锁的获取与释放2.1、void lock()2.2、void lockInterruptibly()2.3、boolean tryLock()2.4、boolean tryL...原创 2020-01-10 17:02:22 · 229 阅读 · 0 评论 -
JAVA并发编程(二十)独占锁ReentrantLock源码分析----抽丝剥茧
JAVA并发编程(二十)独占锁ReentrantLock源码分析----抽丝剥茧JAVA并发编程(二十)独占锁ReentrantLock源码分析----抽丝剥茧1、ReentrantLock初探2、具体实现的方法2.1 void lock()方法2.2 void lockTnterruptibly()方法2.3 boolean tryLock(long timeout , TimeUnit uni...原创 2020-01-09 17:36:16 · 220 阅读 · 0 评论 -
JAVA并发编程(十九)AQS条件变量及自定义同步器
JAVA并发编程(十九)AQS条件变量及自定义同步器JAVA并发编程(十九)AQS条件变量及自定义同步器1、AQS--条件变量2、AQS--条件变量小结3、基于AQS实现自定义同步器JAVA并发编程(十九)AQS条件变量及自定义同步器1、AQS–条件变量我在之前的博客里面讲到过,wait和notify,他是配合synchronized内置锁实现线程同步的基础的工具方法,而条件变量Condit...原创 2020-01-08 17:10:39 · 303 阅读 · 0 评论 -
JAVA并发编程(十八)抽象同步队列AQS概述
JAVA并发编程(十八)抽象同步队列AQS概述JAVA并发编程(十八)抽象同步队列AQS概述1、AQS初探2、获取与释放资源2.1在独占的方式下,获取与释放资源的流程如下:2.2在共享的方式下,获取与释放资源的流程如下:3、AQS如何维护队列的JAVA并发编程(十八)抽象同步队列AQS概述1、AQS初探AQS是AbstractQueuedSynchronizer的全称,又叫做抽象同步队列,并...原创 2020-01-07 16:31:43 · 183 阅读 · 0 评论 -
JAVA并发编程(十七)JUC下LockSupport类
JAVA并发编程(十七)JUC下LockSupport类JAVA并发编程(十七)JUC下LockSupport类1、初识LockSupport2、LockSupport的常用方法及使用2.1 void park()方法2.2 void unpark(Thread thread)方法2.3 void parkNanos(long nanos)方法2.4 void park(Object blocke...原创 2020-01-03 15:56:25 · 232 阅读 · 0 评论 -
JAVA并发编程(十六)CopyOnWriteArrayList源码探究
JAVA并发编程(十六)CopyOnWriteArrayList源码探究JAVA并发编程(十六)CopyOnWriteArrayList源码探究1、初探CopyOnWriteArrayList2、CopyOnWriteArrayList源码探究2.1初始化2.2添加元素2.3获取指定位置元素2.4修改指定元素2.5删除元素2.6使用迭代器(弱一致性)3、总结JAVA并发编程(十六)CopyOnW...原创 2020-01-02 15:34:32 · 842 阅读 · 0 评论 -
JAVA并发编程(十五)LongAccumulator类原理探究
JAVA并发编程(十五)LongAccumulator类原理探究JAVA并发编程(十五)LongAccumulator类原理探究1.1简单介绍LongAccumulator1.2 LongAccumulator源码分析JAVA并发编程(十五)LongAccumulator类原理探究1.1简单介绍LongAccumulator上一篇博客讲到了LongAdder这个类他弥补了AtomicLong...原创 2019-12-31 09:47:30 · 298 阅读 · 0 评论 -
JAVA并发编程(十四)JDK8新增原子操作类LongAdder源码深入分析
JAVA并发编程(十四)JDK8新增原子操作类LongAdder源码深入分析JAVA并发编程(十四)JDK8新增原子操作类LongAdder源码深入分析1.1 初识LongAdder1.2 LongAdder源码分析1.2.1 LongAdder结构是怎么样的呢?1.2.2 当前线程访问的是Cells数组里面的哪一个元素呢?1.2.3 Cells数组如何初始化,如何扩容,以及如何解决冲突?J...原创 2019-12-30 17:13:43 · 248 阅读 · 0 评论 -
JAVA并发编程(十三)JUC下原子变量操作类AtomicLong源码分析
JAVA并发编程(十三)JUC下原子变量操作类AtomicLong源码分析JAVA并发编程(十三)JUC下原子变量操作类AtomicLong源码分析1.1 什么是原子变量操作类?1.2 AtomicLong源码分析1.2.1递增递减操作1.2.2 boolean comapreAndSet(long expect , long update)方法1.2.3 简单应用实例JAVA并发编程(十三)J...原创 2019-12-28 15:34:42 · 334 阅读 · 0 评论 -
JAVA并发编程(十二)Random类和ThreadLocalRandom类原理剖析
JAVA并发编程(十二)Random类和ThreadLocalRandom类原理剖析JAVA并发编程(十二)Random类和ThreadLocalRandom类原理剖析1.1 Random类源码分析1.2Random类的局限性2.1初识ThreadLocalRandom类2.2ThreadLocalRandom源码分析JAVA并发编程(十二)Random类和ThreadLocalRandom类原...原创 2019-12-27 16:30:17 · 426 阅读 · 0 评论 -
JAVA并发编程(十一)锁的概述
JAVA并发编程(十一)锁的概述JAVA并发编程(十一)锁的概述1.1公平锁与非公平锁1.2独占锁与共享锁1.3可重入锁1.4自旋锁1.5悲观锁和乐观锁JAVA并发编程(十一)锁的概述1.1公平锁与非公平锁根据线程获取锁的机制,所可以分为公平锁和非公平锁。如果我们不看概念,光从字面上理解,其实也并不难理解。也就是一个锁对于线程来说是公平,另一个是不公平的。公平锁表示线程获取锁的顺序,是按照线...原创 2019-12-25 16:38:30 · 208 阅读 · 0 评论 -
JAVA并发编程(十)JAVA伪共享
JAVA并发编程(十)JAVA伪共享1.1什么是伪共享1.2为什么会出现伪共享1.3伪共享如何避免1.1什么是伪共享为了解决计算机系统主内存与CPU之间运行速度差的问题,我们会在CPU和主内存之间加一级或者多级高速缓冲存储器(Cache)。这个Cache一般是被集成到我们的CPU内部的,所以也叫CPU Cache。下面有一幅图,可以帮助你理解哦。在Cache内部是按行存储的,其中每一行被称...原创 2019-12-24 16:25:47 · 247 阅读 · 0 评论 -
JAVA并发编程(九)Unsafe类和JAVA指令重排序
JAVA并发编程(九)Unsafe类和JAVA指令重排序1、Unsafe类1.1初识Unsafe1.2如何使用Unsafe1.3Unsafe中的CAS操作1.4Unsafe中的原子操作2、JAVA指令重排序2.1认识指令重排序1、Unsafe类1.1初识UnsafeUnsafe类它是用来干什么的呢?可能从名字上来看,他是一个不安全的类。那为什么不安全呢?这个类不安全为什么又要使用呢?可能有一...原创 2019-12-23 16:05:52 · 303 阅读 · 0 评论 -
JAVA并发编程(八)原子性与CAS操作、ABA问题
JAVA并发编程(八)原子性与CAS操作、ABA问题1、JAVA的原子性操作1.1简单例子2、JAVA的CAS操作3、JAVA的CAS操作中的ABA问题1、JAVA的原子性操作 什么是Java的原子性操作呢?可能很多人都会问。一般得到的回答肯定是这样的:执行一系列操作的时候,这些操作要么全部执行,要么全部不执行。不存在这些操...原创 2019-12-21 16:50:28 · 325 阅读 · 1 评论 -
JAVA并发编程(七)synchronized、volatile内存语义及内存可见性
JAVA并发编程(七)synchronized、volatile内存语义及内存可见性1、JAVA中的线程安全的问题2、JAVA中的共享变量的内存可见性的问题3、synchronized介绍(不深入JVM探讨)4、volatile介绍1、JAVA中的线程安全的问题2、JAVA中的共享变量的内存可见性的问题3、synchronized介绍(不深入JVM探讨)4、volatile介绍...原创 2019-10-31 14:47:19 · 275 阅读 · 0 评论 -
JAVA并发编程(六)ThreadLocal
JAVA并发编程(六)ThreadLocal1、ThreadLocal1、ThreadLocal原创 2019-10-29 23:55:33 · 236 阅读 · 0 评论 -
JAVA并发编程(五)用户线程、守护线程
JAVA并发编程(五)用户线程、守护线程1、什么是用户线程与守护线程?2、举例说明两者区别3、两个注意点1、什么是用户线程与守护线程? 守护线程是一种特殊的线程,在后台默默地完成一些系统性的服务,比如垃圾回收线程、JIT线程都是守护线程。与之对应的是用户线程,用户线程可以理解为是系统的工作线程,它会完成这个程序需要完成的业务...原创 2019-10-26 14:08:08 · 241 阅读 · 0 评论 -
JAVA并发编程(四)线程死锁、饥饿、活锁
JAVA并发编程(四)线程死锁线程死锁线程死锁原创 2019-10-25 13:12:36 · 311 阅读 · 0 评论 -
JAVA并发编程(三)join、sleep、yield等方法详解
JAVA并发编程(三)join、sleep、yield等方法详解1、等待线程执行终止的join方法1.1正确理解join1.2使用join会发生异常的情况2、让线程睡眠的sleep方法2.1正确理解sleep方法2.2使用sleep会发生异常的情况3、让出CPU执行权的yield方法1、等待线程执行终止的join方法 在正式...原创 2019-10-22 10:56:06 · 380 阅读 · 0 评论 -
JAVA并发编程(二)wait、notify等方法详解
JAVA并发编程(二)wait、notify等方法详解1.线程的等待与通知1.1wait()方法1.线程的等待与通知JAVA中所有类的父类是Object,因为继承机制,JAVA把所有类都需要实现的方法放到Object类中,其中就有wait和notify。1.1wait()方法 那么wait()方法是做什么的呢?当一个线程...原创 2019-10-19 21:12:48 · 439 阅读 · 0 评论 -
JAVA并发编程(一)并发编程线程基础
JAVA并发编程(一)并发编程线程基础1.1什么是线程?1.2线程的创建与运行1.2.1继承Thread类创建并运行线程1.2.2实现Runnable接口创建并运行线程1.2.3使用FutureTask创建并运行线程1.2.4小结1.3线程的状态转换1.1什么是线程? 在讲什么是线程之前,我要提一个概念,那就是进程。那么什么...原创 2019-10-16 19:35:08 · 327 阅读 · 0 评论