c++の新しい特性のstd::atomic
std::atomicはC++11パッケージの原子データ型であり、多種のタイプのデータの原子操作をサポートする.以下はatomicがサポートするデータ型である.http://www.cplusplus.com/reference/atomic/.
以上、intタイプのg_を実行するために4スレッドを初期化しました.iCountの減算操作では、データエラーは発生しませんでした.
#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の減算操作では、データエラーは発生しませんでした.