C++拾遗--多线程:原子操作解决线程冲突
前言
在多线程中操作全局变量一般都会引起线程冲突,为了解决线程冲突,引入原子操作。
正文
1.线程冲突
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <Windows.h>
int g_count = 0;
void count(void *p)
{
Sleep(100); //do some work
//每个线程把g_count加1共10次
for (int i = 0; i < 10; i++)
{
g_count++;
}
Sleep(100); //do some work
}
int main(void)
{
printf("******多线程访问全局变量演示***by David***\n");
//共创建10个线程
HANDLE handles[10];
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{