java
未读
@Async 什么时候会失效?
@Async 注解在 Spring 中实现异步调用的核心是通过 AOP 动态代理机制,若破坏了代理生效的条件,就可能导致异步失效。以下是常见的失效场景及原因: 1. 未添加 @EnableAsync 注解 @Async 生效的前提是在 Spring 配置类或启动类上添加 @EnableAsync 注
java
未读
锁的升级、膨胀和降级
定义 1. 锁的升级(Lock Promotion) 含义:特指 读写锁(ReadWriteLock) 中,一个线程在持有读锁的情况下尝试获取写锁的操作。 限制:这种操作是禁止的,会导致死锁。因为写锁需要等待所有读锁释放(包括自身持有的),而自身又在等待写锁获取成功后才能继续执行释放读锁的逻辑,形成