谁能给我解释一下这句话,对多线程不太了解

解决方案 »

  1.   

    int a;
    UINT func(LPARAM param)
    {
    a=1;
    a--;
    }上面是线程函数,如果开启了两个线程如下:
    AfxBeginThread(func,NULL); //线程A
    AfxBeginThread(func,NULL); //线程B
    如果二者没有冲突,当他们都执行完毕后结果应该是a=0;
    但可能A线程执行到a=1,B线程也执行到这一句,然后二者都继续执行a--,则a变成了-1。
    这就是临界问题。
    func函数体内就是临界问题区
      

  2.   

    EnterCriticalSection()
    ......
    .......
    LeaveCriticalSection()