在C#中,lock
語句是synchronized
關鍵字的替代方案
以下是一個使用lock
語句的示例:
class Account
{
private object _lock = new object();
private int _balance;
public int Balance
{
get { return _balance; }
}
public void Deposit(int amount)
{
lock (_lock)
{
_balance += amount;
}
}
public bool Withdraw(int amount)
{
lock (_lock)
{
if (_balance >= amount)
{
_balance -= amount;
return true;
}
else
{
return false;
}
}
}
}
在這個示例中,我們使用lock
語句確保在同一時間只有一個線程可以訪問_balance
變量。這樣可以防止多個線程同時修改_balance
的值,從而確保數據的完整性和一致性。