首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java源码分析
订阅
一辈子的码农
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
ArrayBlockingQueue源码解析(2)
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 如果没有元素,直接返回null;如果有元素,将队头元素置null,但是要注意队头是随时变化的,并非一直是items[0]。 1、具体入队与出队的原理图:这里只说一种情况,见下图,途中深色…
ArrayBlockingQueue源码解析(1)
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 通过使用方法,可以看出ArrayBlockingQueue支持ReentrantLock的公平锁模式与非公平锁模式,对于这两种模式,查看本文开头的文章即可。 awaitNanos(nan…
ConcurrentHashMap源码解析(1)
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 注:在看这篇文章之前,如果对HashMap的层不清楚的话,建议先去看看HashMap源码解析。 注:在往下看之前,心里先有这样一个映像:ConcurrentHashMap的数据结构:一个…
DelayQueue系列(一):源码分析
本文将会对DelayQueue做一个简单的介绍,并提供部分源码的分析。 DelayQueue的特性基本上由BlockingQueue、PriorityQueue和Delayed的特性来决定的。 简而言之,DelayQueue是通过Delayed,使得不同元素之间能按照剩余的延迟…
Java并发编程之锁机制之ReentrantReadWriteLock(读写锁)
在前面的文章中,我们讲到了ReentrantLock(重入锁),接下来我们讲ReentrantReadWriteLock(读写锁),该锁具备重入锁的可重入性、可中断获取锁等特征,但是与ReentrantLock不一样的是,在ReentrantReadWriteLock中,维护了…
AtomicInteger源码解析
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 下面就以AtomicInteger为例。 在没有AtomicInteger之前,对于一个Integer的线程安全操作,是需要使用同步锁来实现的,当然现在也可以通过ReentrantLoc…
LinkedBlockingQueue源码解析(2)
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 更多网易技术、产品、运营经验分享请点击。
Google guava cache源码解析1--构建缓存器(3)
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 说明:获取初始化容量,如果指定了就是用指定容量,如果没指定,默认为16。值得注意的是,该容量是用于计算每个Segment的容量的,并不一定是每个Segment的容量,其具体使用的方法见L…
ConcurrentHashMap源码解析(3)
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 源代码不写了。 遍历每个Segment中的HashEntry[],完成所有对象的读取,不加锁。 若三次后,还未成功,遍历所有Segment,分别加锁(即建立全局锁),然后计算,最后释放所…
Redis分布式锁:基于AOP和Redis实现的简易版分布式锁
平时在项目中经常会遇到并发问题,理论上有些方法只应该被调用一次,但由于并发而被重复调用,导致出现系统问题。而在我们的项目中,最容易发生这种情况的是,推送消息的服务。无论是短信还是app推送,或者是公众号的推送,因为并发问题而导致的重复推送,肯定是不被允许的。 所以我准备通过分布…