小编Mic*_*nen的帖子

C++:线程竞争条件是否会破坏每字节级别的静态/全局整数值?

假设我有两个线程,它们在全局范围内从静态 int 变量随机递增或递减。我的程序并不关心这个变量的确切值,只关心它是否随着时间的推移而普遍增加或减少。

虽然我在大学期间写过一些汇编代码,但我不熟悉CPU如何处理多线程以及内核之间的通信。两个同时写入是否有可能在每字节级别上损坏全局变量?或者对内存的读取和写入(例如移动、加载、存储)总是原子的?

我使用 Visual Studio 2022 和 C++17,并希望针对所有现代桌面 CPU(intel、AMD)。

c++ multithreading race-condition data-corruption c++17

3
推荐指数
1
解决办法
199
查看次数