一不小心就死锁了,怎么办? 在上一篇文章中,我们用 Account.class 作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,性能太差. 向现实世界要答案 我们试想在古代,没有信息化,账户的存在形式真的就是一个账本,而且每个账户都有一个账本,这些账本都统一存放在文件架上.银行柜员在给我们做转账时,要去文件架上把转出账本和转入账本都拿到手,然后做转账.这个柜员在拿账本的时候可能遇到以下三种情况: 文件架上恰好有转出账本和转入账本,那就同时拿…