日期:2014-05-16  浏览次数:20771 次

新手,问linux有windows的 WaitforSingleObject的概念吗
新手,问linux有windows的   WaitforSingleObject的概念吗

------解决方案--------------------
有的
pthread_cond_wait

pthread_cond_timedwait
------解决方案--------------------
看man手册比较全面
pthread_cond_wait接受两个参数,一个条件变量(它相当于Event)和一个互斥体。当调用时它解锁互斥体并开始在条件变量上等待,等待其他线程调用pthread_cond_signal/pthread_cond_broadcast来信号这个条件变量,然后pthread_cond_wait返回并重新锁住互斥体。使用方法如下:
pthread_mutex_lock(&mut);
//开始等待其他线程
pthread_cond_wait(&cond,&mut);
pthread_mutex_unlock(&mut);

pthread_cond_timedwait在pthread_cond_wait的基础上增加一个struct timespec 时间参数,如果指定的时间消逝,即使条件变量没有成为信号状态,它也会停止等待返回。