理解线程构造函数的基础知识

时间:2017-09-23 02:20:32

标签: c++ multithreading constructor

我需要帮助理解以下内容:

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 个答案:

答案 0 :(得分:1)

关于这一行:

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

正在构建一个thread,其中runThread(this)又称this->runThread(),其中thisSimulation个实例。

Simulation::runThread()似乎没有参数,但实际上它是一个成员函数,所以它有一个隐式的this,好像它已被声明:

void runThread(Simulation* this)