
生产者唤醒逻辑。pthread_mutex_lock(&mutex)pthread_cond_signal(&cond)pthread_mutex_unlock(&mutex)
条件变量的 *** 作也需要达到线程安全的要求,因此需要互斥对象来进行保证。避免两个线程同时 *** 作条件变量引发问题。而通过查阅pthread_cond_wait()的相关资料可知,当程序运行到pthread_cond_wait()时,会将互斥对象锁释放,以便生产者能够顺利唤醒。而在消费者被成功唤醒,pthread_cond_wait()等待完成后,互斥对象会被重新上锁直到手动释放。
这个函数被信号中断就会返回-1的,系统调用约定就这样,我man了一下,有这么一句:EINTR
The
call
was
interrupted
by
a
signal
handler
before
any
of
the
requested
events
occurred
or
the
timeout
expired
see
signal(7).
即调用被信号打断,返回-1,errno被设置为EINTR
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)