0

2 つの異なるコアがメイン メモリの同じ場所に同時に書き込もうとするとどうなりますか? メイン メモリは自動的にメモリ内のスポットに一度に 1 つずつ書き込むことのみを許可しますか? それとも、何らかの高価なロックを発生させる必要がありますか?

(基本的に、アトミックな volatile int への書き込みがどれほど高価かを知りたいです。また、それにアクセスしない他のプロセスやスレッドに影響がある場合、たとえばバスがロックされた場合、すべてに影響しますよね?)

4

2 に答える 2

0

ハードウェアには、メモリへの物理接続が 1 つしかありません。2 つの異なるソースから同時に書き込むことはできません。ただし、発生するように見える場合があります。

2 つのプロセス/スレッドから読み取りを実行してから書き込みを行おうとすると、それらがオーバーラップすると、この問題が発生する可能性があります。アトミック操作が使用される「ミューテックス」は、それを回避する方法を実装しています。

于 2013-03-29T16:43:37.753 に答える