多线程编程中,在必要的时候我们会使用加锁机制来确保线程安全,但过度使用锁可能会引发活跃性问题,造成死锁。产生死锁的一种常见情况是锁顺序死锁(Lock-Ordering Deadlock),即不同线程没有按照固定的顺序来获得锁,因此要保证锁顺序的一致性。请问,下列转账代码是否会产生死锁 ()
public void transferMoney(Account fromAccount, Account toAccount, Amount amount) {
synchronized (fromAccount) {
synchronized (toAccount) {
fromAccount.minus(amount);
toAccount.add(amount);
}
}
}