当多个线程同时*读取*同一内存时,是否存在数据争用?

Ami*_*mit 3 c++ multithreading c++11 data-race

cppreference.com

线程和数据竞争

当一个表达式的求值修改到一个内存位置而另一个求值读取修改相同的内存位置时,这些表达式被称为冲突。具有两个相互冲突的评估的程序会发生数据竞争,除非......

这谈到了“thread1-modify thread2-read”(MR) 的场景以及“thread1-modify thread2-modify”(MM) 的场景。

“线程 1 读取线程 2 读取”(RR) 怎么样?

eer*_*ika 5

不会。只要没有线程在该内存位置中进行未排序的写入,多个线程按顺序读取内存就不是数据竞争。

该场景可能被排除在数据竞争的描述之外,因为该场景不是数据竞争。