线程1 运行函数func1(),线程2运行func2().
func1()
{
for( ... ){
生成一个随机数 a(全局变量);
pthread_cond_signal( func2); //唤醒func2
使用生成的随机数 a 进行相关计算,结果为 A1;
pthread_cond_wait (A2); //等待func2的结果 A2
等待func2的结果 A2,与A1比较大小;
}
}
func2()
{
do{
pthread_cond_wait ( a ); //等待func1生成随机数 a;
等待func1生成一个新的 a ;
进行运算,生成结果A2;
pthread_cond_signal ( func2) //唤醒func1,进行比较
}
}
两个线程的大体含义是 线程1 生成一个a值,线程1,2都需要该值进行比较。
两个函数内,我使用了pthread_cond_wait()进行协调运行,单是pthread_cond_signal()经常空操作,程序不能正常运行。
各位大神有没有更好的方法来协调两个函数之间的运行。任何方法都可以。