Wal*_*orf 5 memory multithreading multicore
大多数关于内存顺序的信息是指多核/多CPU。最近我问了一个关于重新排序的问题,答案是主要发生在多核上。在单核 CPU 上运行一个小测试后:
thread1()
{
x++;
y++;
}
thread2()
{
if (x < y)
.... should not happen, because x is incremented first.
}
Run Code Online (Sandbox Code Playgroud)
x < y 在多核弱有序 CPU 上发生得更频繁,但在单核 CPU 上仍会发生。(这是我预料到的,但在大多数文章中都没有提到)
任何经验,确认或解释为什么它不应该发生在单个内核上(尽管它似乎在没有任何编译器优化的情况下发生)?
归档时间: |
|
查看次数: |
136 次 |
最近记录: |