文章
131
粉丝
0
获赞
0
访问
14.1k

评分及理由
(1)得分及理由(满分4分)
学生指出了两处错误并给出了正确的修改:
if(key == True) 改为 while(key == True)。这是正确的,因为需要循环等待直到成功获取锁。lock = True; 改为 lock = False;。这是正确的,因为退出临界区后需要释放锁(将lock置为FALSE)。学生的修改与标准答案完全一致,因此该部分得满分。
得分:4分
(2)得分及理由(满分3分)
学生回答“不可以”,并给出了理由:“改变 key, lock 的值的过程必须是一气呵成的原子操作 new Swap 无法实现。” 这个理由抓住了核心要点:swap指令是原子操作,而newSwap函数调用在多线程环境下无法保证原子性,可能导致互斥失败。
学生的回答虽然表述比标准答案简略,但核心思想(原子性)正确,且结论正确。根据“思路正确不扣分”的原则,应给予满分。
得分:3分
题目总分:4+3=7分
登录后发布评论
暂无评论,来抢沙发