Windows线程同步【1】多线程的惆怅

多个线程之间常常需要共享数据。例如,有个全局变量,

struct X
{
    int a;
    int b;
    int c;
}

X x0;

线程t1和线程t2都需要访问这个变量。如果t1正在修改x0的值但没有改完,此时,操作系统把执行权切换到了t2,而此时,t2正要读取x0的值,于是,t2便读取到了一个错误的值。这样的问题在某些情况下会产生难以预料的后果,轻则出现计算错误,重则进程崩溃。

所以,我们必须使用一些手段,使得需要被多个线程共享的数据在同一时刻只能被一个线程访问。这个手段,叫做线程同步。

你可能感兴趣的:(Windows线程同步【1】多线程的惆怅)