Когда два потока используют эту транзакцию () одновременно, как возникает тупик?
void transaction(Account from, Account to, double amount)
{
mutex lock1, lock2;
lock1 = get lock(from);
lock2 = get lock(to);
acquire(lock1);
acquire(lock2);
withdraw(from, amount);
deposit(to, amount);
release(lock2);
release(lock1);
}
Как возник тупик? пожалуйста, объясните, даже мы сделали заказ на замок