C++类中多线程实现:
1.在学习C++多线程过程中,很多教程实现的是类外部函数调用,如何实现在本类中调用成员函数实现多线程,查阅相关资料使用bind函数绑定所调用函数,也可以将bind函数省略,本例中func1使用bind函数,func2将bind函数省略,关于bind函数的原型,可查阅相关资料,此处不再详述。如果有更好的办法也请多多指教。
#include <iostream.h>
#include <thread.h>
#include <Windows.h>
using namespace std;
class A {
public:
A() {
};
~A() {
};
void func1() {
thread t1(bind(&A::f1, this));
t1.detach();
}
void funcf2(int num) {
thread t2(&A::f2, this, num);
t2.detach();
}
private:
int num = 0;
void f1() {
while (1) {
num++;
cout << "f1 = " << num << endl;
Sleep(1 * 1000);
}
}
void f2(int i) {
while (1) {
cout << "f2 = " << i * 2 << endl;
i++;
Sleep(2 * 1000);
}
}
};
int main()
{
A a;
a.func1();
a.funcf2(5);
while (1) {
}
return 0;
}