进程在等待信号量的时候其实在执行什么?和while循环有什么不一样?哪一个响应更快?为什么?

时间:2021-09-29 20:41:01
进程在等待信号量的时候其实在执行什么?和while循环有什么不一样?哪一个响应更快?为什么?

6 个解决方案

#1


建议你先看一些进程同步的文档吧。在多CPU/多线程的环境下尽量用信号量机制。
while循环不是一种好的解决方案,尽管它“可能”可以运行。但是也可能出现这样的情况(和进程调度有关),while循环永远不能退出。
while循环是一种查询的方式,比较耗CPU资源。

#2


进程在等待信号量的时候其实在SLEEP
while循环其实在WORK

#3


等待信号量的过程是如何实现的?

#4


谁知道等待信号量的过程具体是怎样的???

#5


大家都知道的部分:线程挂起,操作系统发现条件满足(包括出现某种错误)时,重新唤醒进程。
大家都不知道的部分:去问actpvc,看它告不告诉你。

#6


自己做个测试吧,while必定造成CPU 100%,而守侯内核事件是把CPU的控制权交出去,进行
其他进程或者线程的操作。这个是基本概念。

#1


建议你先看一些进程同步的文档吧。在多CPU/多线程的环境下尽量用信号量机制。
while循环不是一种好的解决方案,尽管它“可能”可以运行。但是也可能出现这样的情况(和进程调度有关),while循环永远不能退出。
while循环是一种查询的方式,比较耗CPU资源。

#2


进程在等待信号量的时候其实在SLEEP
while循环其实在WORK

#3


等待信号量的过程是如何实现的?

#4


谁知道等待信号量的过程具体是怎样的???

#5


大家都知道的部分:线程挂起,操作系统发现条件满足(包括出现某种错误)时,重新唤醒进程。
大家都不知道的部分:去问actpvc,看它告不告诉你。

#6


自己做个测试吧,while必定造成CPU 100%,而守侯内核事件是把CPU的控制权交出去,进行
其他进程或者线程的操作。这个是基本概念。