2017-09-23 158 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