我的程序中有个变量(vector容器,被访问的时候需要一段时间,因为需要遍历), 需要在不同的地方访问, 不同的线程里边. 但是事实上我想让该变量的访问是同步的,也就是说只有在一个地方对该容器的访问结束后才能在别的地方进行访问. 我想这样做,在每次被访问前都用一个函数把该向量锁住,访问结束后把它打开.我的问题是系统有没有提供这种锁定资源和打开锁定的API函数, 有的话是什么?
谢谢解答?

解决方案 »

  1.   

    线程同步嘛,有很多方法的.
    1.临界区
    2.mutex你说的直接锁住向量我知道没有.
      

  2.   

    没有为了锁变量的API,除了InterLock~
    其他的最好用临界区。
      

  3.   

    event
    mutex
    semaphore...
    可以看看windows核心编程,里面说的很详细
      

  4.   

    临界区:
    InitializeCriticalSection(&criCounter);
    EnterCriticalSection(&criCounter);
    你的代码加在这儿
    LeaveCriticalSection(&criCounter);
    DeleteCriticalSection(&criCounter);
      

  5.   

    在自己的代码那块可以有函数调用吗?在那个函数调用中, 会修改临界区的东西.我编了一个,运行的社会down机了.