简介:
原子操作指的是由多步操作组成的一个操作。如果该操作不能原子地执行,则要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集。
这意味着不需要额外的同步机制(比如显示加锁)就可以执行并发的读写操作。
原子类型:
示例代码:
#include <iostream>
#include <atomic>
#include <thread>
using namespace std;
void addAtomic( atomic<int> &num )
{
for( int i = 0; i < 1000; i++ )
{
++num;
this_thread::sleep_for( chrono::milliseconds( 1 ) );
}
}
void add( int &num )
{
for( int i = 0; i < 1000; i++ )
{
++num;
this_thread::sleep_for( chrono::milliseconds( 1 ) );
}
}
int main()
{
cout << "原子类型VS普通类型\n";
int nCount =