1
void BalanceTransfer(Account &FromAccount, Account &ToAccount, double amount)
{
    FromAccount.Substract(amount);
    ToAccount.Add(amount);
    //What is the best way to protect this function if there are 100 threads calling this function for 1000's of accounts...
}
4

1 回答 1

1

在每个帐户中都有一个互斥锁。在事务之前,锁定两个互斥锁(当然之后释放它们)。锁定顺序很重要;为避免死锁,您需要定义锁定顺序,例如始终首先锁定具有最低帐号的帐户。

于 2013-08-22T12:21:06.117 回答