回调函数在哪个线程执行 回调函数与线程有何区别?
回调函数与线程有何区别?
普通函数与回调函数的区别:
调用普通函数:调用程序调用普通函数后,程序执行立即转为被调用函数执行,然后返回调用程序继续执行,直到被调用函数执行为止。从调用程序的角度来看,这个过程是“call--> wait for the called function to finishe executing--> continue executing”
调用回调函数:调用程序调用回调函数后,会立即返回并继续执行,而不必等待函数完成执行。这样,调用程序和被调用函数被同时执行。当被调用函数完成时,被调用函数将依次调用预先指定的函数,通知调用程序函数调用结束。这个过程称为回调,它是回调函数名称的来源。
回调函数和普通函数有什么区别?
Calling method
普通函数,当被其他函数调用时,函数名直接写在调用者内部
回调函数,通常作为参数传递给调用者,调用者不知道自己在调用什么
另外,回调函数主要用于多线程的情况
普通函数,回调函数是由其他函数调用的,区别在于:例如:
void func1(){}
void func2(){}
typedef void(*FP)//声明函数指针,FP表示空参数,并返回void
void funccaller1(){
//这里func1可以看作是普通函数
func1()//这里funccall1清楚地知道它调用了func1
}
void Funccaller2(FP funcptr){
funcptr()//这里funccall2不知道它在调用什么,只知道它调用了参数为空且返回类型为void
}
void Funccaller3(){
//这里,funccaller2是普通函数,func1是回调函数
funccaller2(func1)//用func1调用funccaller2
//这里,funccaller2是正规函数,func2是回调函数
funccaller2(func2)//用func2调用funccaller2
}
回调函数在哪个线程执行 callback回调函数 为什么要用回调函数
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。