我正在构建多线程应用程序。
只有当指针变为!=nil
void *fun(struct coordinates *app){
struct coordinates coord;
coord.x = app->x;
coord.y = app->y;
//printf("\n %p %d %d", t_queue[coord.x][coord.y], coord.x, coord.y);
while(1){
if(t_queue[coord.x][coord.y]){
pthread_mutex_lock(&Thread_Mutex);
/*
critical zone
*/
pthread_mutex_unlock(&Thread_Mutex);
}
//sleep(1);
}
pthread_exit(nil);
}
而不是if (t_queue[coord.x][coord.y])
,我想使用另一个真正等待并且不使用这么多cpu的功能(否则我的cpu会达到100%,只使用睡眠它会降低到仅10%检查变量是否变为!=
到nil
)