Когда два потока используют эту транзакцию () одновременно, как возникает тупик?

      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);
}

Как возник тупик? пожалуйста, объясните, даже мы сделали заказ на замок

0 ответов

Другие вопросы по тегам