文章
130
粉丝
0
获赞
0
访问
6.0k
1):我们应该先交换lock与key,然后判断key是否等于false,lock是否等于true;swap key,lock if(key==FALSE&&lock==TRUE)
在退出时应当将lock开锁 lock=FALSE;
2):不可以,因为这是由软件实现的互换而swap是由原语实现的,前者可能会导致当多个线程进入时,实现不了key和lock的真正交换;
评分及理由
(1)得分及理由(满分4分)
得分:2分
理由:
lock = TRUE
改为lock = FALSE
(1分),符合标准答案要求。key == FALSE && lock == TRUE
,但未将if
改为while
(1分)。标准答案要求必须使用while
循环实现轮询,否则无法保证互斥。while
循环会导致互斥失败(扣1分),且条件判断逻辑冗余(扣1分)。(2)得分及理由(满分3分)
得分:3分
理由:
newSwap
是软件实现,无法保证原子性(1分)。题目总分:2+3=5分
登录后发布评论
暂无评论,来抢沙发