用信号量实现读者和写者问题
1. 基本信息
姓名 | 学号 | 班级 | 是否编译成功 | 是否运行结果正确(逻辑也要正确) |
---|---|---|---|---|
是/否 | 是/否 |
如果代码运行不正确,写报告时,呈现所做的努力,按以下格式来写:
# 2. 做了什么
# 3. 碰到什么样的问题
# 4. 针对遇到的问题,你做了哪些努力
如果运行结果正确,按以下方式来写:
- 结合关键代码,解释代码背后的原理(对于别人不能一眼就能明白你代码要做什么的,你要给出解释)
- 给出测试结果,并解释运行结果
- 文末,再给出完整的代码
以下是代码运行正确的报告格式:
2. 循环队列
2.1 循环队列实现
结构体定义:
插入一个数:
删除一个数:
2.2 循环队列测试
你是怎么测试你写的循环队列,确保没问题?给出测试的关键代码,及测试结果。
3. 利用信号量解决生产者和消费者问题
3.1 信号量创建及初始化
3.2 生产者
3.3 消费者
3.4 主函数(创建生产者和消费者各10个线程)
3.5 测试
4. 如果不加锁,会如何
把生产者和消费者的加解锁去掉,再次运行代码,有报错吗?给出实验结果。