程序里需要有一些变量,比如人的血魔数值,启动一条线程不断更新这些数据,而这些数据会在其他线程的任意时间访问到,怎么才能保证所有的线程都可以获得正确数据呢?

解决方案 »

  1.   

    多线程同步
    http://www.vckbase.com/document/viewdoc/?id=1708
      

  2.   

    所有访问到这些全局变量的线程都写成这样,是不是很影响执行效率啊
    static UINT   TestFun(LPVOID   pParam)
    {
    while (TTExit == FALSE)
    {
            critical_section.Lock();
            xxx访问全局变量xxx;
            critical_section.Unlock();
    }
    return 0;
    }
      

  3.   

    while (TTExit == FALSE)
    楼主的这个是什么作用的?
    如果只是在临界段里读变量,应该不会效率低啊.读一下就出来了,其他线程要等的时候也不长.