m_threads[i].reset(new Thread(std::bind(&Scheduler::run,this),m_name +“_" +std::to_string(i)))
Thread 这个对象的构造
Thread(std::function<void()> cb, const std::string& name);
bind函数
void Scheduler::run()this 指针被传递给 run 函数,指向当前的 Scheduler 对象。这是必要的
因为 run 是 Scheduler 类的一个成员函数,调用它时需要一个具体的对象实例
当你调用一个成员函数时,你不需要(也不能)显式地传递this指针。编译器会自动处理它。但是,
当你想要将成员函数作为可调用实体(如函数指针、函数对象或lambda表达式)传递给另一个函数或对象时,情况就不同了。
因为C++的函数指针不支持成员函数(它们只能指向非成员函数),
所以你需要一种方法来封装成员函数和它的调用对象(即this指针)。
slyar
最新推荐文章于 2024-09-16 17:46:36 发布