文章目录
生产者消费者问题实践
第1关:生产者消费者问题实践
任务描述
生产者—消费者之间设置一个具有n个缓存区的缓冲池,生产者进程将他所生产的产品放入一个缓冲区;消费者进程可以从一个缓冲区中取走产品去消费。不允许消费者进程到一个空缓冲去取产品。不允许生产者进程向一个已装满产品且尚未取走的缓冲区投放产品。
使用多线程实现生产者和消费者问题模型,使用锁和信号量控制线程之间的同步。
相关知识
为了完成本关任务,你需要掌握:1.多线程相关的系统调用,2.使用锁控制进程互斥,3.使用信号量控制进程同步
多线程相关的系统调用
include <pthread.h>
使用锁控制进程互斥
在主线程中初始化锁为解锁状态
pthread_mutex_t mutex;
pthread_mutex_init(&mutex, NULL);
访问对