2017-09-23 160 views
0

的基础知识,我需要帮助理解下面一行:了解线程的构造

FSDFSDFSDFSDF看来,runThread功能与thread_ptr工作。为什么在构造函数调用之后需要分配到thread_ptr

} 
}; 

class FGDD { 

    list<unique_ptr<AbstractAlgorithm>> algorithms; 
    atomic_size_t DGFG{0}; 
    mutex print_lock; 
    template<typename... Ts> 
    void message(const Ts&... ts) { 
     lock_guard<mutex> lock(print_lock); 
      using swallow = int[]; 
     (void)swallow{0, (void(cout << ts), 0)...}; 
      cout << endl; 
    } 

回答

1

关于这条线:

thread_ptr = make_unique<thread>(&Simulation::runThread, this); 

据构建thread它运行runThread(this)又名this->runThread(),其中thisSimulation实例。

Simulation::runThread()似乎没有参数,但实际上它是一个成员函数,所以它有一个隐含的this,就好像它是宣称:

void runThread(Simulation* this) 
+0

当“这个”获得通过,它的意思是主线程或'thread_ptr'? – tami

+2

这不是一个线程。这是'模拟'。 –

+0

它是主要的's'吗? – tami