什么是handler?

105

我正在尝试学习一些编程相关术语,经常遇到“handler”这个词。有人可以解释一下它的含义以及何时使用吗?


1
在计算机科学中,这个术语通常用于操作系统和其他系统软件开发。当在此上下文中使用时,“handler”一词可能是指执行特定任务的软件例程/过程或事件。在某些情况下,“handler”一词也可能是指“处理”某种异常(例如错误)的例程,但它也可以指主流进程。请查看此维基参考 - 0xe1λ7r
3个回答

103

Handler是一个特定于某种类型数据或专注于特定任务的例程/函数/方法。

例子:

  • 事件处理程序 - 接收和消化来自周围系统(例如操作系统或GUI)的事件和信号。

  • 内存处理程序 - 对内存执行某些特殊任务。

  • 文件输入处理程序 - 接收文件输入并根据上下文对数据执行特定任务。


9
信号处理程序-用于处理信号“事件”。 - Jonathan Leffler

17

与特定事件相关联并由其触发的代码,例如传入消息、抛出异常、向进程发送信号、完成网络I/O请求或单击用户界面元素。这是一个非常通用的术语。


3
那是一个事件处理程序。楼主询问的是不太具体的术语“handler”。 - Jimbo

11

我认为这是一个非常通用的术语,没有“硬”定义。它的意义高度依赖于上下文,取决于代码设计的总体情况。

对我来说,通常意味着从内核调用一些代码,该代码应该执行某些任务并返回结果。那个“内核”部分可以有几个可用的“处理程序”,并且选择其中之一进行调用。

在某些情况下,您可以定义某些API使这些处理程序大多互换使用,因此调用者可以从表格中选择一个并使用相同的代码调用任何一个处理程序。面向对象编程在这里非常有帮助。


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