定义了个简单的结构体。
定义了queue队列变量。一个线程不断的添加数据(push),另一个线程不断的读取,(pop)
,内存的占用一直增长。请问如何解决。

解决方案 »

  1.   

    typedf struct
    {
      int x;
      int y;
      int z;
    }POINT;//声明队列
    queue<POINT> m_data; 
    主线程保存数据到队列
    void SaveData(POINT *pPoint)
    {
      POINT pt;
      pt.x=pPoint->x;
      pt.y=pPoint->y;
      pt.z=pPoint->z;
     EnterCriticalSection(&m_crit);
     m_data.push(NP);
     LeaveCriticalSection(&m_crit);
    }
    另一个线程读取队列
    void ReadQueue()
    {
       EnterCriticalSection(&m_crit);
       if(!m_Qdata.empty())
    {
      POINT& pt=m_data.front();
              m_data.pop();
              }
        LeaveCriticalSection(&m_crit);
    }在使用的过程中 基本是存入一个就读取一个 不存在数据堆积的情况。
    监测内存发现。内存使用不断的增长 是怎么回事?????
    多谢