通过在for循环内部枷锁实现
thread thr1(printf1,1);
thread thr2(printf2,2);
直接在线程名字后面加参数
一个成员方法可不可以实现虚函数,需要两点
当使用基类指针–指向派生类的对象时
Base *p=new Derive();
delete p;
当你想通过delete释放派生类对象的内存时,会导致派生类对象的析构函数无法调用,只调用了基类部分的析构函数—如果此时派生类的析构函数有释放额外系统资源的代码,那么就直接造成资源泄漏了。–delete p这个代码是在编译时绑定的
但如果把基类的析构函数写成虚析构函数,此处就是动态绑定了,由于你是派生类提供了自定义的析构函数,那么虚函数表写的就是派生类的析构函数地址,此时派生类和基类的析构函数都可以调用到了