问题:
场景:A给B转账50,B给A转账100,如果这两个操作并发同时进行,我们可以根据hashCode来确定加锁顺序,
比如hash(A) < hash(B),则先lock A,然后lock B。在并发情况下也不会像传统处理那样互相持有对方所需的锁而导致死锁问题产生;
此处的加锁可以是单机下的Synchronized 或者 Lock,或是数据库锁,甚或分布式锁等。具体根据业务,技术场景而定。
问题:
场景:A给B转账50,B给A转账100,如果这两个操作并发同时进行,我们可以根据hashCode来确定加锁顺序,
比如hash(A) < hash(B),则先lock A,然后lock B。在并发情况下也不会像传统处理那样互相持有对方所需的锁而导致死锁问题产生;
此处的加锁可以是单机下的Synchronized 或者 Lock,或是数据库锁,甚或分布式锁等。具体根据业务,技术场景而定。