for(int a=2; a<500; a+=4){
pthread_mutex_lock(&hmutex);
ration = rational(a/2, a);
cout << pthread_self() << " ThreadA : " << ration << endl;
pthread_mutex_unlock(&hmutex);
usleep(1);
}
注意红色一行usleep函数,可以使当前锁定的线程交出mutex,否则当前线程会一直占用此mutex。
小问题2:
在C++定义类之后编译,类中的firend函数实现放在.h文件中时,用g++ 生成会产生函数重复定义的问题,要注意。