小编And*_*ung的帖子

防止死锁

对于伪函数,如

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),则会发生死锁

怎么能防止这种情况?

这会有用吗?

deadlock pseudocode

2
推荐指数
1
解决办法
1278
查看次数

标签 统计

deadlock ×1

pseudocode ×1