假设我有两个线程,它们在全局范围内从静态 int 变量随机递增或递减。我的程序并不关心这个变量的确切值,只关心它是否随着时间的推移而普遍增加或减少。
虽然我在大学期间写过一些汇编代码,但我不熟悉CPU如何处理多线程以及内核之间的通信。两个同时写入是否有可能在每字节级别上损坏全局变量?或者对内存的读取和写入(例如移动、加载、存储)总是原子的?
我使用 Visual Studio 2022 和 C++17,并希望针对所有现代桌面 CPU(intel、AMD)。
c++ multithreading race-condition data-corruption c++17
c++ ×1
c++17 ×1
data-corruption ×1
multithreading ×1
race-condition ×1