首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
再听风吟
掘友等级
后端开发
道长且阻,行则将至
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
31
文章 31
沸点 0
赞
31
返回
|
搜索文章
赞
文章( 31 )
沸点( 0 )
Java并发(6)- CountDownLatch、Semaphore与AQS
上一篇文章中详细分析了基于AQS的ReentrantLock原理,ReentrantLock通过AQS中的state变量0和1之间的转换代表了独占锁。那么可以思考一下,当state变量大于1时代表了什么?J.U.C中是否有基于AQS的这种实现呢?如果有,那他们都是怎么实现的呢?…
公平锁与非公平锁的对比
1. 问题 在上一篇文章中结合源码介绍了公平锁和非公平锁的实现【文章链接】。这一篇文章将从公平性和性能方面对比一下两者。 在阅读本文之前,可以先思考一下下面两个问题。 1. 非公平锁一定不公平吗? 2. 公平锁与非公平锁的性能谁更好? 2. 对比 主要从公平性和性能这两个方面来…
初识CAS的实现原理
1. CAS简介 CAS的全称是Compare And Swap,翻译过来就是比较并交换。假设内存中数据的值为V,旧的预期值为A,新的修改值为B。那么CAS操作可以分为三个步骤:1)将旧的预期值A与内存中的值V比较;2)如果A与V的值相等,那么就将V的值设置为B;3)返回操作是…
Unsafe类的源码解读以及使用场景
1. Unsafe类简介 Unsafe类是rt.jar中sun.misc包下的类,从类名就能看出来,这个类是不安全的,但是它的功能十分强大。相比C和C++的开发人员,作为一名Java开发人员是十分幸福的,因为在Java中程序员在开发时不需要关注内存的管理,对象的回收,因为JVM…
@Autowired注解的实现原理
1. 问题 2. Demo 运行main()方法,最终会在query()方法中打印出UserService对象。 3. 实现原理:AutowiredAnnotationBeanPostProcessor 在分析AutowiredAnnotationBeanPostProcess…
一次策略设计模式的实际应用
笔者所在公司是做激励性广告媒体投放的,说得通俗点,就是给用户钱,让用户点击我们APP上的广告。既然是激励性的,所以就涉及到给用户加奖励,作为一名后端开发,就需要提供加奖励的接口。由于广告场景很多,每一个地方给用户奖励的条件又是不一样的,所以在代码实现上就针对每一个场景做了不同处…
队列同步器(AQS)源码分析
AQS中获取锁和释放锁的方法很多,今天以acquire()和release()为例来进行源码分析,其他方法的逻辑与这两个方法逻辑基本一样。 以上面demo为例,先创建了一个公平锁,然后调用lock()方法来加锁,最后调用unlock()方法释放锁。在lock()方法中会调用到S…
队列同步器(AQS)的设计原理
1. 前言 在Java中锁所可以分为两大类,一类是通过synchrinized关键字实现的隐式锁,一类是JUC包的锁。前者是通过JVM实现的,后者是根据队列同步器(AQS)实现的,也就是今天的主角。 在JUC包下实现了很多锁以及工具类,例如ReentrantLock、ReadW…
SpringAop源码分析(基于注解)二:筛选通知器
其中第<2>步就是触发我们BeanPostProcessors的地方。 我们再回过头来看AnnotationAwareAspectJAutoProxyCreator有一个上层父类AbstractAutoProxyCreator,它实现了SmartInstantiationAwa…
SpringAop源码分析(基于注解)四:拦截器链
本文依据JdkDynamicAopProxy来分析,对CGLIB感兴趣的同学看一看ObjenesisCglibAopProxy相关代码。 我们重点关注第<4>步和第<6>步,这两个地方非常重要,第<2>步涉及比较多,最后我们再分析,先来看下第&#x…
下一页
个人成就
文章被点赞
11
文章被阅读
5,579
掘力值
181
关注了
22
关注者
5
收藏集
1
关注标签
7
加入于
2020-08-28