CI には次のものがあります。
double balance;
void deposit(double amount)
{balance = balance +amount;}
機械語:
load R1, balance
load R2, amount
add R1, R2
store R1, balance
変数 balance に 500 が含まれていて、2 つのスレッドがそれぞれ 300 と 200 を同時に入金する手順を実行する場合、これはどのように問題になるのでしょうか? また、同時実行メカニズムを使用してこのプロシージャをスレッドセーフにするにはどうすればよいでしょうか?