线程对象..破坏

时间:2014-09-21 02:15:42

标签: c++ multithreading c++11

所以我最近一直在摆弄std :: thread,我遇到了以下情况: - 首先,我的目标是让一个线程对一个对象执行操作。为了说明,以下是一个简单的代码,它构造一个线程来通过对象的成员函数设置成员变量。问题是当执行此代码时,内存将越来越多地消耗在while循环中生成的线程。我不明白这种行为;线程一旦超出范围就不应被破坏,因此程序消耗的内存保持不变,因为 while 循环?

 #include <thread>    
   using namespace std;  
   class foo  
   {  
      public:  
      int x;  
      void set()  
      {
         x = 1;  
      }  
   };  

   int main()   
   {   
      while(true)   
      {   
         foo f;   
         thread t(&foo::set, &f);   
         t.join();   
      }   
      return 0;   
   }   

编辑:我在Windows 7下使用MinGW64执行此程序。上述代码消耗的内存速率约为每秒1兆字节。

0 个答案:

没有答案
相关问题