请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于这个锁的问题?

1.程序中执行到互斥锁的地方,是不是就等于告诉CPU:现在开始执行下面的指令,不准切换线程和进程,一直执行到锁释放为止?
2.一个单核的CPU执行到互斥锁的地方,如果下面的指令是一个死循环;根据上面第一条的理解:这个锁会一直占据着这个CPU,CPU就无法切换到其它的线程或进程,那么所有的线程或进程是不是都应该进入等待状态,等待这个锁被释放?
如果真是这样子的话,我们写的软件随随便便不就可以把服务器给搞挂了?
老师,我上面的两条理解的对么?

正在回答 回答被采纳积分+3

1回答

咚咚呛 2020-03-05 23:11:15

不是的,理解有误。

对于第一点,他并不是说告诉CPU不能切换线程,而是不能让别的线程也进入互斥锁保护的逻辑,互斥锁保护的地方只能有一个线程执行。

所以第二点也理解错误了。

0 回复 有任何疑惑可以回复我~
  • 提问者 guoyansi #1
    不能让别的线程也进入互斥锁保护的逻辑?怎么样才叫进入了互斥锁保护的逻辑?
    回复 有任何疑惑可以回复我~ 2020-03-05 23:35:40
  • 咚咚呛 回复 提问者 guoyansi #2
    你回顾一下临界资源这个概念。互斥锁加锁和解锁之间的逻辑就是互斥锁保护的逻辑。
    回复 有任何疑惑可以回复我~ 2020-03-06 00:10:41
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信