啥是原子操作用C++代码举例说明
时间: 2024-03-01 20:51:26 浏览: 70
以下是一个简单的 C++ 代码示例,展示了如何使用 std::atomic 类型来实现原子操作:
```c++
#include <iostream>
#include <thread>
#include <atomic>
std::atomic<int> x(0);
void increment() {
for (int i = 0; i < 100000; i++) {
x++;
}
}
int main() {
std::thread t1(increment);
std::thread t2(increment);
t1.join();
t2.join();
std::cout << "x = " << x << std::endl;
return 0;
}
```
在上面的代码中,我们定义了一个 std::atomic<int> 类型的变量 x,并且启动了两个线程来对它进行加操作。由于 std::atomic 类型提供了原子性操作,因此不需要加锁,多个线程可以同时对 x 进行操作,而不会出现竞态条件。最终输出的结果应该为 200000,即两个线程分别对 x 执行了 100000 次加操作。
阅读全文