对于伪函数,如
void transaction(Account from, Account to, double amount){
Semaphore lock1, lock2;
lock1 = getLock(from);
lock2 = getLock(to)
wait(lock1);
wait(lock2);
withdraw(from, amount);
deposit(to, amount);
signal(lock2);
signal(lock1);
}
Run Code Online (Sandbox Code Playgroud)
如果您运行事务(A,B,50)事务(B,A,10),则会发生死锁
怎么能防止这种情况?
这会有用吗?