使用原子操作来保证多个线程同时访问该内存时的一致性示例
时间: 2023-07-31 07:07:35 浏览: 146
关于多线程同步的例子
下面是一个使用原子操作来保证多个线程同时访问该内存时的一致性的示例:
```
#include <iostream>
#include <thread>
#include <atomic>
std::atomic<int> counter{0}; // 原子整型变量
void increment_counter() {
for (int i = 0; i < 1000000; ++i) {
counter++; // 自增操作是原子操作
}
}
int main() {
std::thread t1(increment_counter);
std::thread t2(increment_counter);
t1.join();
t2.join();
std::cout << "Counter value: " << counter << std::endl;
return 0;
}
```
在这个示例中,我们创建了一个原子整型变量`counter`,并在两个线程中对其进行自增操作。由于自增操作是原子操作,所以可以保证多个线程同时访问该内存时的一致性。最后,我们输出`counter`的值,可以看到其值为2000000,说明两个线程对`counter`变量进行了正确的自增操作。
阅读全文