多核:同时访问共享内存

时间:2012-03-29 16:41:32

标签: shared-memory

在多核中是否有同时访问共享内存的规则? 如果一个内核正在写共享内存,另一个内核正在同时读取同一个内存,那有什么问题吗? 应该避免这种情况吗?

2 个答案:

答案 0 :(得分:0)

是的,你需要避免这种情况。您可以安全地使用多核和多线程进行同时读取 - 只有在没有副作用的情况下才能读取。

答案 1 :(得分:0)

这称为竞争条件,此类代码的结果将无法预测。你必须避免它。你可以:

  • 将算法更改为使用单独的内存,或
  • 使用原子操作同步访问,或
  • 使用更高级别的同步结构(如关键部分或互斥锁)来同步访问。

正如@DanDan所说,只读取几个线程不是问题。