如果有多个线程在不同的内核上运行(真正的并行性)并且它们同时访问同一个变量。如果保证他们只读取变量,读取可以真正并行发生吗?
考虑以下示例:
如果我们将对该变量(称为bool stop
)的访问函数定义为:
bool const & readOnlyAccesToVariable() // Returns a unchangeble reference to the variable
该变量是主线程私有的。主线程的职责是尽可能同时停止在不同内核上执行大量工作线程。如果更改为 ,则停止工作人员。stop
1
工人定期做:
if (readOnlyAccesToVariable() ) break;
一些工人会同时停止(意味着停止的读取不是串行的而是并行的)?