C多线程:等待直到(表达式);

时间:2015-05-24 15:26:22

标签: c multithreading pthreads wait

我正在构建多线程应用程序。 只有当指针变为!=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

0 个答案:

没有答案