使用标准库中的类成员函数绑定器,生成函数对象,把函数对象做为入口函数传递给thread
输出结果为:
my name is XiaoMing
my name is XiaoMing, age:25
class Boy
{
public:
Boy(const char* name) : _name(name) {}
void ReadMeAsync1() {
printf("my name is %s\n", _name.c_str());
}
void ReadMeAsync2(int age) {
printf("my name is %s, age:%d\n", _name.c_str(), age);
}
private:
std::string _name;
};
int main()
{
Boy boy("XiaoMing");
std::thread(std::mem_fun(&Boy::ReadMeAsync1), &boy).join();
std::thread(std::mem_fun(&Boy::ReadMeAsync2), &boy, 25).join();
return 0;
}