关于这个锁的问题?

来源:7-2 线程同步之互斥量

guoyansi

2020-03-05

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

写回答

1回答

咚咚呛

2020-03-05

不是的,理解有误。

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

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

0
2
咚咚呛
回复
guoyansi
你回顾一下临界资源这个概念。互斥锁加锁和解锁之间的逻辑就是互斥锁保护的逻辑。
2020-03-06
共2条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程