![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 87
qq_37584164
这个作者很懒,什么都没留下…
展开
-
一种基于Redis实现的分布式锁的思路
一种基于Redis实现的分布式锁的思路 特性列表 阻塞锁,当获取不到锁时,会阻塞当前线程,让出CPU执行权,当其他线程释放锁时,唤醒该线程继续参与锁竞争。 自旋锁,当获取不到锁时,会自旋一定次数后,再将线程阻塞。 获取到锁后设置有过期时间,防止应用宕机后无法释放锁。 锁快过期时,会自动续租。 TODO 释放锁时,检查锁是否被当前线程持有,避免将其他线程的锁释放。 接口定义 该接口是一个锁的通用定义,定义如下: public interface DistLock { void lock();原创 2021-09-24 21:30:55 · 421 阅读 · 0 评论 -
Java多线程之CountDownLatch简介
Java多线程之CountDownLatch简介 CountDownLatch类是java.util.concurrent包下的一个并发工具类。先了解一下这个类名的字面意思,countdown的意思是倒计时、倒数,latch意思是门闩、插销。 在Java doc中对这个类的解释: A synchronization aid that allows one or more threads to w...原创 2019-04-21 08:35:44 · 159 阅读 · 0 评论 -
Java静态代理与JDK动态代理
Java静态代理与JDK动态代理 代理模式分为静态代理和动态代理。所谓静态代理是指由程序员手动编写代理类或者由工具自动生成代理类,所以代理类的字节码是在编译期间生成的,并且可以看到对应的.class文件。而动态代理的代理类的字节码是在程序运行期间自动生成的,然后直接由classloader加载,也不会生成.class文件。 定义接口如下: package cn.com.yeexun.proxy; ...原创 2019-10-06 10:52:43 · 191 阅读 · 0 评论