signal handler vs事件处理程序

时间:2013-08-29 00:29:03

标签: c++ linux windows events signals

最近在一次采访中,他们要求我指出信号处理程序和事件处理程序之间的区别。我从未在Linux中遇到事件处理程序,但在使用Google搜索后,我发现Windows中存在事件处理程序。

我只想了解有关此问题的更多信息。任何信息都是最受欢迎的。

2 个答案:

答案 0 :(得分:0)

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

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

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

如果没有以正确的方式前进,请纠正我。

答案 1 :(得分:0)

我认为特定于事件的信号处理程序源自内核,而事件处理程序是信号处理程序的更抽象版本,包括“任何”事件(点击事件,网络事件,信号等)。