采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
1.程序中执行到互斥锁的地方,是不是就等于告诉CPU:现在开始执行下面的指令,不准切换线程和进程,一直执行到锁释放为止? 2.一个单核的CPU执行到互斥锁的地方,如果下面的指令是一个死循环;根据上面第一条的理解:这个锁会一直占据着这个CPU,CPU就无法切换到其它的线程或进程,那么所有的线程或进程是不是都应该进入等待状态,等待这个锁被释放? 如果真是这样子的话,我们写的软件随随便便不就可以把服务器给搞挂了? 老师,我上面的两条理解的对么?
不是的,理解有误。
对于第一点,他并不是说告诉CPU不能切换线程,而是不能让别的线程也进入互斥锁保护的逻辑,互斥锁保护的地方只能有一个线程执行。
所以第二点也理解错误了。
不能让别的线程也进入互斥锁保护的逻辑?怎么样才叫进入了互斥锁保护的逻辑?
你回顾一下临界资源这个概念。互斥锁加锁和解锁之间的逻辑就是互斥锁保护的逻辑。
登录后可查看更多问答,登录/注册
编程之前先学这门课,系统补足计算机基础知识,夯实编程地基
3.4k 17
1.7k 14
1.2k 13
1.3k 11