生产者与消费者模型
生产者与消费者满足【三二一原则】:
三种关系:①生产者——生产者:互斥与同步
②生产者——消费者:互斥或竞争
③消费者——消费者:互斥或竞争
两种角色:①生产者:往临界资源里放东西
②消费者:从临界资源里拿东西
一个公共场所:同一缓冲区
接下来,将通过两种方式分别实现生产者——消费者模型。
基于单链表的生产者——消费者模型
我们可以借助单链表的插入来充当生产者的角色,借助链表的删除来充当消费者,而通过对链表的头插和头删操作来模拟数据的放置和获取。
链表所需接口:链表初始化、链表判空、链表头插、链表头删、链表打印、链表删除等。
(1)条件变量——衡量当前临界资源状况
①创建条件变量:
int pthread_cond_init(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex);