其实写这篇文章的目的是这样的:在基本的网络库中,经常看到有注册回调这么一说,让回调函数做真正去做的事情,在libevent中就是这样。这样做的目的说了为了避免阻塞,避免异步(这里首先说明异步和阻塞是不同的概念)。但是我的问题是:如果在回调中执行了很耗时的操作,甚至是在回调中出现了阻塞的操作,这该怎么办?还有就是,在执行回调函数的部分时,是不是流程和回调函数的内容顺序执行的,想执行中断那样,不管怎么说,必须等到这个回调函数执行结束以后才能执行下一个回调后的代码,如果这样的话,在执行回调的时候有事件到达(这里是采用的I/O复用监听各个事件,事件存在返回的场景!!)
如果有知道答案或者哟自己想法的都可以交流!!
下面的都是从不同的地方看到的文章:
回调函数在什么场景有用?
我要在特定时候执行一个任务,至于是什么时候我自己都不知道。比如某一时间到了或者某一事件发生或者某一中断触发。
回调函数怎么起作用?
把我要执行的这个任务写成一个函数,将这个函数和某一时间或者事件或者中断建立关联。当这个关联完成的时候,这个函数华丽的从普通函数变身成为回调函数。
回调函数什么时候执行?
当该回调函数关心的那个时间或者事件或者中断触发的时候,回调函数将被执行。
一般是触发这个时间、事件或中断的程序主体(通常是个函数或者对象)观察到有一个关注这个东东的回调函数的时候,这个主体负责调用这个回调函数。
回调函数有什么好处?
最