信号处理程序与事件处理程序

3

最近在一次面试中,他们问我区分信号处理程序和事件处理程序的差异。我从未在Linux中遇到过事件处理程序,但是通过Google搜索,我发现Windows中存在事件处理程序。

我只想了解更多关于这个问题的信息。欢迎提供任何信息。


信号比事件更粗糙和侵入性。GUI程序通常有一个主循环来响应事件 - 在WinAPI和X11中都是如此。 - Jonathan Leffler
我已经编辑过了,请 @Jonathan Leffler 纠正我。 - Santosh Sahu
2个回答

0

我认为信号处理程序是针对来自内核的事件而设计的,而事件处理程序则是信号处理程序的更抽象版本,并包括“任何”类型的事件(点击事件、网络事件、信号等)。


0

我发现用户必须编写事件处理程序函数才能捕获事件,而内核为程序提供默认信号处理程序。

事件处理程序负责处理程序外部的事件,如键盘中断、鼠标单击等。事件处理程序将不断轮询特定插槽以等待事件发生。因此,在这里可能会消耗CPU生命周期。

信号处理程序也用于两个进程之间的进程间通信。用户可以为进程定义自己的信号处理程序以处理特定信号。在信号处理机制中,我认为不会不必要地消耗任何CPU周期。

如果我走错了,请纠正我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接