【发布时间】:2012-03-29 16:41:32
【问题描述】:
在多核中同时访问共享内存有什么规则吗? 如果一个核心正在写入共享内存,另一个核心在完全相同的时间读取相同的内存,这有什么问题吗? 这种情况应该避免吗?
【问题讨论】:
标签: shared-memory
在多核中同时访问共享内存有什么规则吗? 如果一个核心正在写入共享内存,另一个核心在完全相同的时间读取相同的内存,这有什么问题吗? 这种情况应该避免吗?
【问题讨论】:
标签: shared-memory
这称为竞争条件,此类代码的结果将是不可预测的。你必须避免它。您可以:
正如@DanDan 所说,只从多个线程中读取是没有问题的。
【讨论】:
是的,您需要避免这种情况。唯一可以安全地使用多核和多线程执行的操作是同时读取 - 并且只有在没有副作用的情况下。
【讨论】: