文章
123
粉丝
93
获赞
1
访问
16.7k

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了两个信号量:mutex_y和mutex_z,分别用于保护y和z的互斥访问。但标准答案中需要三个信号量,因为thread1和thread2都需要访问y,且thread3同时修改y和z,需要更细粒度的控制。学生只定义了两个信号量,缺少对y的细粒度控制,扣1分。得分:2分
(2)thread1代码得分及理由(满分1分)
thread1中正确使用P(mutex_y)和V(mutex_y)保护了对y的访问,逻辑正确。得分:1分
(3)thread2代码得分及理由(满分2分)
thread2中先申请mutex_y再申请mutex_z,然后执行add(y,z),最后按相反顺序释放。但由于缺少细粒度控制,当thread1和thread2同时访问y时会出现不必要的互斥,降低了并发度。扣1分。得分:1分
(4)thread3代码得分及理由(满分2分)
thread3中对z的操作正确加锁,但对y的操作只使用了一个mutex_y,没有考虑thread1和thread2可能同时访问y的情况,这会降低并发度。扣1分。得分:1分
题目总分:2+1+1+1=5分
登录后发布评论
暂无评论,来抢沙发