为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦帮忙讲解你们对这段代码的理解

麻烦帮忙讲解你们对这段代码的理解

C#
烙印99 2023-03-02 14:10:21
代码:…… //创建了三个线程for(int i = 0; i < 5; i++){lock(this){addSum += 2;Thread.Sleep(1);Console.WriteLine(Thread.CurrentThread.Name + ", 执行第 "+ i + "次, addSum = " + addSum);}}问题: 怎么理解lock(){}中的Sleep(1),如果 线程1进入到lock中执行,遇到sleep(1)就休眠1毫秒,这时候其他线程怎么也能进入lock中执行,lock不是实现线程间的互斥吗?
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

别的线程进不来,得等从lock出去才行。你把1改成1000就能看出来了。

查看完整回答
反对 回复 2023-03-06
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

Thead.Sleep并不释放线程,别的线程不可能进来的

查看完整回答
反对 回复 2023-03-06
  • 2 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号