pthread_mutex_t thread_mutex;
pthread_cond_t thread_cond;
线程1:
pthread_mutex_lock(&thead_mutex):
. 。。。。。。一些操作
pthread_mutex_unlock(&thread_mutex);
pthread_cond_signal(&thread_cond) ; //立即触发pthread_mutex_wait 函数返回
线程2
pthread_mutex_lock(&thead_mutex):
。。 。。。 一些操作
while(...){
pthread_mutex_wait(&thread_cond,&thread_mutex);
// 1 没有返回之前,它会使thread_mutex解锁,相当于pthread_mutex_unlock(&thread_mutex);
// 2 返回之后 ,它会使thread_mutex 上锁,相当于 pthread_mutex_lock(&thead_mutex):
}
pthread_mutex_unlock(&thread_mutex);
本文详细介绍了使用pthread_mutex和pthread_cond实现线程间的同步机制。通过具体示例展示了如何利用mutex锁保护临界区资源,并使用条件变量进行线程间的等待与通知。特别强调了条件变量在解锁与重新加锁mutex上的自动处理。

3万+

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



