在多线程的概念中,如果多个线程同时的去修改某一个变量,这样会导致最终的结果出现偏差。为了解决此类问题,在多线程中引入互斥量的概念,通过它来保护一个变量、一段代码块,防止同时操作某一个变量的事件发生。在QT中,通过QMutex类来实现互斥的功能。
例如,下面的一段代码:
int number = 6;
void method1()
{
number *= 5;
number /= 4;
}
void method2()
{
number *= 3;
number /= 2;
}
如果这两个函数按照顺序执行,则会产生如下的结果:
//method1()
number *= 5; //number is now 30