logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Lock锁<二> _ 重入锁/读写锁

目录一、重入锁ReentrantLock1. 实现锁重进入2. 获取公平锁与非公平锁的区别二、读写锁ReentrantReadWriteLock1.ReentrantReadWriteLock的API2. 读写状态设计3. 写锁的获取与释放4.读锁的获取与释放5. 写锁降级三、参考资料一、重入锁ReentrantLock重入锁指线程获得锁后能够再次获取该锁而线程不被阻塞。synchronized关

#java
ConcurrentHashMap的实现原理

目录一、为什么用ConcurrentHashMap?二、ConcurrentHashMap结构及初始化1.ConcurrentHashMap结构2. 初始化三、ConcurrentHashMap的API1. put()源码2. get()源码四、参考资料一、为什么用ConcurrentHashMap?ConcurrentHashMap线程安全且高效的操作,如下图对比所示。而HashMap非线程安全

#java
Gateway网关限流

一、常见限流场景缓存、降级、限流被称为高并发、分布式系统中经常提及的话题。这里讨论网关限流。1.1 限流对象a):请求频率限流(Request rate limiting):限制某个接口的一分钟内的请求数b):并发量限流(Concurrent requests limiting):限制某个服务的处理请求数c):传输速率限流(Transmission rate limiting):限制下载文件速率d

#java#spring#spring boot
Redis —— 海量扫描Scan

目录一、scan扫描原理二、scan测试一、scan扫描原理如上图所示,需注意问题:1. scan与keys:复杂度都是O(n),但scan的游标分步扫描。若是生产海量扫描,keys一次获取所有正则的key,造成服务卡顿,所以避免使用keys操作2. scan命令中count:不是元素的数量,而是slot数量,从而导致每次分步遍历获取元素数量不同3. 遍历顺序:高进位加法,意思是:扩容时,从高位进

#redis
到底了