上传者: songsiqi2006
|
上传时间: 2021-06-03 11:50:33
|
文件大小: 4KB
|
文件类型: C
生产者和消费者问题:
1、建立一个有界的缓冲区buffer_item buffer[BUFFER_SIZE],大小BUFFER_SIZE为5。
2、主线程(main函数)操作如下:从命令行获取程序参数;初始化信号量及二进制锁;创建生产者线程与消费者线程;休眠一段时间令生产者线程与消费者线程对有界的缓冲区进行操作;退出程序。
3、设置两个信号量full和empty,分别在有界的缓冲区buffer空或者满时防止消费者或生产者进入临界区对buffer进行操作。设置一个锁mutex,防止多个线程同时进入buffer。
4、生产者操作:休眠一段随机时间,生产一个随机数,添加到有界的缓冲区中。进入临界区前先wait empty与mutex,出临界区后signal full和mutex。
5、消费者操作:休眠一段随机时间,进入有界的缓冲区中取走一个数。进入临界区前先wait(full)与wait(mutex),出临界区后signal (empty)和signal (mutex)。