什么是回调,回调在编程中的含义
回调函数的最初需求背景 回调函数我能想到的最古老的场景就是系统编程会用到。 编程分为两类: 系统编程(system programming) 应用编程(application programming) 什么是系统编程: 所谓系统编程,简单来说,就是编写各种各样的功能库。比如Windows里面的win32、gdi32库,win32就能调用主机硬件和系统层的功能,gdi32能用来绘制图形相关。 什么是应用编程: 而应用编程就是利用已经写好的各种系统功能库、语言功能库来编写具某种业务功能用的程序,就是应用。比如一个基础的爬虫程序,可以利用python语言和requests库来完成,一个基础的Web站点可以利用Java语言和Java Servlet库来完成。 系统编程和回调的关系 系统程序员会给自己写的库留下一些接口,即API,以供应用程序员使用。所以在抽象层的图示里,库位于应用的底下。当程序跑起来时,一般情况下,应用程序会时常通过API调用库里所预先备好的函数。 但是有些库函数却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。 这个被传入的、后又被调用的函数就称为回调函数(callback function)。 如果你看文字看得比较懵,那么你看我画的图(下面是图1): 理解回调前,先理解同步调用 同步调用是以一种阻塞式调用,简单来说就是从上往下,顺序执行。