Cplusplus原子变量使用代码
时间: 2023-09-30 18:05:04 浏览: 144
crowfood:从 CC++ 代码创建依赖文件,用于使用蛇食创建依赖图
以下是使用C++11标准的原子变量的示例代码:
```c++
#include <iostream>
#include <atomic>
#include <thread>
std::atomic<int> counter(0);
void increment_counter()
{
for (int i = 0; i < 10000; ++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`的原子变量,它可以在多个线程之间安全地进行读写操作。我们使用`std::atomic<int>`来定义一个整数类型的原子变量。我们还定义了一个`increment_counter()`函数,该函数将在多个线程中同时运行,每个线程都会自增变量`counter`的值10000次。在主函数中,我们创建了两个线程来调用`increment_counter()`函数。最后,我们打印出`counter`的值,它应该是20000。
原子变量是C++11标准中引入的一个新特性,它可以在多线程程序中提供一种更安全和更高效的方式来进行共享数据的读写操作。
阅读全文