pthread_cond_init(&cond, NULL);
pthread_mutex_init (&mutex, NULL);
pthread_mutex_lock (&mutex);
struct timespec timeout;
/*
struct timeval now;
gettimeofday(&now);
timeout.tv_sec = now.tv_sec+2;
timeout.tv_nsec = now.tv_usec * 1000;
*/
timeout.tv_sec = time(NULL)+2; //Wait for 1 second, Must
timeout.tv_nsec = 0;
if(pthread_cond_timedwait(&cond, &mutex, &timeout)!=ETIMEDOUT)
{
}
pthread_mutex_lock (&mutex);
pthread_cond_signal (&cond);
pthread_mutex_unlock (&mutex);
本文介绍了一个使用 POSIX 线程库中的条件变量 (pthread_cond) 和互斥锁 (pthread_mutex) 的示例。代码展示了如何初始化这些同步原语,并通过一个定时等待 (timed wait) 的例子说明了它们的使用方式。此外,还演示了如何发送信号通知等待线程以及如何解锁互斥锁。
812

被折叠的 条评论
为什么被折叠?



