昨天,同事优化加锁方式时,出现死锁了

昨天,同事优化加锁方式时,出现死锁了

摘要:最近,在优化程序的加锁方式时,竟然出现了死锁!!到底是为什么呢?!经过仔细的分析之后,终于找到了原因。

本文分享自华为云社区《【高并发】优化加锁方式时竟然死锁了!!》,作者: 冰 河。

写在前面

最近,在优化程序的加锁方式时,竟然出现了死锁!!到底是为什么呢?!经过仔细的分析之后,终于找到了原因。

为何需要优化加锁方式?

我们在转账类TansferAccount中使用TansferAccount.class对象对程序加锁,如下所示。

public class TansferAccount{
 private Integer balance;
 public void transfer(TansferAccount target, Integer transferMoney){
 synchronized(TansferAccount.class){
 if(this.balance >= transferMoney){
 this.balance -= transferMoney;
 target.balance += transferMoney;
 } 
 }
 }
}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 昨天,同事优化加锁方式时,出现死锁了