实验3:进程控制-2(信号量)

  1. 编写生产者和消费者程序,要求:

  1. 生产者和消费者两个程序,共用一个仓库,仓库是一个普通文件(/tmp/store),容量为100个字节;

  1. 生产者生产资源放进仓库,消费者则从仓库中消费资源;资源为数字字符“1、2、3、4、5、6、7、8、9、0”,一个资源就是一个数字,10个数字循环生成;

  1. 生产者创建仓库(/tmp/store),间隔1s生产一个资源,当仓库满了(资源数量达到100个)的时候,生产者不能继续生产;消费者间隔2s消费一个资源,当仓库为空的时候,消费者不能继续消费;

  1. 消费者每次消费

  1. 1个资源,首先打印出消耗之前仓库中的资源数量和空位的数量,然后打印出消耗之后仓库中的资源数量和空位的数量,并打印出所消耗的资源内容;

  1. 生产者每次生产1个资源,先打印出生产之前仓库中的资源数量和空位的数量,然后打印出生产之后仓库中的资源数量和空位的数量,并打印出所生产的资源内容。

  1. 消费者消费资源后需要把已经消费的资源从仓库里删除;

  1. 用信号量实现进程的同步和互斥。

【提示】题目有多种解决方案,可以用1个或多个信号量,也可以使用信号量+文件锁,或者使用其他合适的方法。

运行结果:

猜你喜欢

转载自blog.csdn.net/weixin_52357218/article/details/128619087