多线程访问全局数据队列时会产生读写冲突。如何用就用一个事件(CreateEvent)来避免读写冲突??我原来的方法是用了一个事件+一个整数来避免,同时读的时候不会产生冲突,但读和写的时候会
产程冲突,在写的时候重置事件句柄,读的时候wait。用那个整数来标示当前同时读这个数据队列
的线程个数,在写的时候wait这个整数为0时写。

解决方案 »

  1.   

    这应该是个线程同步的问题,线程本身提供了很多对象可以锁住,如:CCriticalSection、CEvent、CMute、CSemaphore,可以利用这些对象解决同步问题,具体资料可以到网上搜索,应该很多的!
      

  2.   

    支持 orbit(吹泡泡的小猫) 
    还可以参照数据库中的二阶段封锁~~共享锁和排他锁~~~~
    :)
      

  3.   

    楼上说了很多,是楼主没看懂吧。
    Event用来控制读写冲突显然不太合适,应该用临界区CriticalSection。