条件变量配合互斥锁比信号量的功能更强大,因为它可以自定义休眠条件,但是这对使用者的要求也提高了,必须理清逻辑关系避免死锁。
条件变量作用:条件变量的常见用法是在不满足某些条件时,阻塞自己,直到有线程通知自己醒来。
互斥变量的作用:互斥量在这里的作用依然还是防止多线程对共享资源同时操作,造成未知结果。
生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。
参考链接:
http://www.infoq.com/cn/articles/producers-and-consumers-mode
http://blog.csdn.net/yusiguyuan/article/details/48265205
https://songlee24.github.io/2015/04/30/linux-three-syn-problems/
网友评论