Return语句是否应该在关键部分之外?

问题描述

我正在上操作系统课程。我想问一下锁和关键部分。考虑以下可以由多个线程调用的C函数。每当使用共享资源balance时,我都会使用锁。

int withdraw(account,amount) 
{
     acquire(lock);
     balance = get_balance(account);
     balance = balance - amount;
     put_balance(account,balance);
     release(lock);
     return balance;
}

我的问题是我应该这样做还是在return语句之后释放锁?两种方式的后果是什么,哪种是更好的做法?

我看到了另一个类似的Question,但我无法从中了解在示例示例中该怎么做。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)