上传者: 44158828
|
上传时间: 2021-04-11 17:19:33
|
文件大小: 4KB
|
文件类型: C
C语言实现生产者消费者问题,分配具有n个缓冲区的缓冲池,作为共享资源。
定义两个资源型信号量empty 和full,empty信号量表示当前空的缓冲区数量,full表示当前满的缓冲区数量。
定义互斥信号量mutex,当某个进程访问缓冲区之前先获取此信号量,在对缓冲区的操作完成后再释放此互斥信号量。以此实现多个进程对共享资源的互斥访问。
创建3进程(或者线程)作为生产者,4个进程(或者线程)作为消费者。创建一个文件作为数据源,文件中事先写入一些内容作为内容。
编写代码实现生产者进程的工作内容,即从文件中读取数据,然后申请一个empty信号量,和互斥信号量,然后进入临界区操作将读取的数据放入此缓冲区中。并释放empty信号量和互斥信号量。