1.多线程访问同一变量,但是不加锁的时候
int num=0;//定义全局变量
int main(int argc, char *argv[])
{
//创建并开始跑俩个线程
thread_1 t1;
thread_2 t2;
t1.start();
t2.start();
return a.exec();
}
//线程一
void thread_1::run()
{
while (1) {
num++;
cout<<"thread_1:"<<num<<endl;
}
}
线程二
void thread_2::run()
{
while (1) {
num++;
cout<<"thread_2:"<<num<<endl;
}
}
实验结果:
由打印结果可见,俩个线程访问同一个变量,且没有加锁的时候,会造成访问到的数据错乱;