编写生产者和消费者程序,要求:
- 生产者和消费者两个程序,共用一个仓库,仓库是一个普通文件(/tmp/store),容量为100个字节;
- 生产者生产资源放进仓库,消费者则从仓库中消费资源;资源为数字字符“0-9”,一个资源就是一个数字,10个数字循环生成;
- 生产者创建仓库(/tmp/store),间隔1s生产一个资源,当仓库满了(资源数量达到100个)的时候,生产者不能继续生产;消费者间隔2s消费一个资源,当仓库为空的时候,消费者不能继续消费;
- 消费者每次消费1个资源,首先打印出消耗之前仓库中的资源数量和空位的数量,然后打印出消耗之后仓库中的资源数量和空位的数量,并打印出所消耗的资源内容;
- 生产者每次生产1个资源,先打印出生产之前仓库中的资源数量和空位的数量,然后打印出生产之后仓库中的资源数量和空位的数量,并打印出所生产的资源内容。
- 消费者消费资源后需要把已经消费的资源从仓库里删除;
- 用信号量实现进程的同步和互斥。
【提示】题目有多种解决方案,可以用1个或多个信号量,或者使用其他合适的方法。