def transfer(srcAccount, dstAccount):
lock(min(srcAccount, dstAccount).mutex)
lock(max(srcAccount, dstAccount).mutex)
srcAccount.balance = srcAccount.balance - amount
dstAccount.balance = dstAccount.balance + amount
unlock(srcAccount.mutex)
unlock(dstAccount.mutex)