单核上的内存重新排序

时间:2015-02-04 20:15:32

标签: multithreading memory multicore

有关内存顺序的大多数信息都涉及多核/多CPU。最近我问了一个有关重新排序的问题,答案主要是多核心。 在单核CPU上运行小测试后:

thread1()
{
 x++;
 y++;
}

thread2()
{
 if (x < y) 
   .... should not happen, because x is incremented first.
}

x&lt; y在多核弱有序CPU上更频繁地发生,但它仍然发生在单核CPU上。 (我预期,但在大多数文章中没有提到)

任何经验,确认或解释为什么不应该在单个核心上发生(虽然它似乎没有任何编译器优化)?

0 个答案:

没有答案