摘要:
就想你看到的那样,出现了错误.金额总量发生了细微的变化.
这个问题是在多个线程试图同时更新账户时出现的.假设两个线程同时执行这条指令:
accounts[to] += amount;
问题在于他不是原子操作.指令可能会以下面这种方式执行:
1)将account[to]载入寄存器.
2)增加amount.
3)将结果写回accounts[to].
阅读全文
posted @ 2007-03-31 20:38 adamxx 阅读(1004) 评论(0) 推荐(0) 编辑