2016 - 2024

感恩一路有你

回调函数在哪个线程执行 回调函数与线程有何区别?

浏览量:2448 时间:2021-03-12 21:01:00 作者:admin

回调函数与线程有何区别?

普通函数与回调函数的区别:

调用普通函数:调用程序调用普通函数后,程序执行立即转为被调用函数执行,然后返回调用程序继续执行,直到被调用函数执行为止。从调用程序的角度来看,这个过程是“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回调函数 为什么要用回调函数

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。