c++の新しい特性のstd::atomic


std::atomicはC++11パッケージの原子データ型であり、多種のタイプのデータの原子操作をサポートする.以下はatomicがサポートするデータ型である.http://www.cplusplus.com/reference/atomic/. c++新特性之std::atomic_第1张图片
#include <atomic>
#include <thread>
#include <list>
std::atomic_int g_iCount = 100;

void threadfunc1()
{
    while (g_iCount > 0)
    {
        printf("threadfunc1 g_iCount:%d\r
"
, --g_iCount); } } void threadfunc2() { while (g_iCount > 0) { printf("threadfunc2 g_iCount:%d\r
"
, --g_iCount); } } int main(int argc, char** argv) { thread t1(threadfunc1); thread t2(threadfunc1); thread t3(threadfunc2); thread t4(threadfunc2); t1.join(); t2.join(); t3.join(); t4.join(); return 0; }

以上、intタイプのg_を実行するために4スレッドを初期化しました.iCountの減算操作では、データエラーは発生しませんでした.c++新特性之std::atomic_第2张图片