python基礎函數(shù)大全 callback回調函數(shù),怎么用,為什么要用?
callback回調函數(shù),怎么用,為什么要用?沒接觸過嵌入式開發(fā),但稍懂c語言,勉強答一波。舉個實用性的例子,例如在瀏覽器中對百度發(fā)起搜索請求,大概是如下這樣一個場景:CPU:你好!百度,我想問一下今
callback回調函數(shù),怎么用,為什么要用?
沒接觸過嵌入式開發(fā),但稍懂c語言,勉強答一波。
舉個實用性的例子,例如在瀏覽器中對百度發(fā)起搜索請求,大概是如下這樣一個場景:
CPU:你好!百度,我想問一下今天天氣好嗎?
如果說CPU問這句話用時一秒,那么,讓我們站在CPU的角度來看,等待百度的回復,可能相當于等待了一年時間,因為CPU的處理速度相對于網絡速度來說實在是太快太快了。
那么再回到CPU的角度,在等待網絡請求的那一段很長很長的時間里面,它完全有空檔去完成其他任務。
那剛剛發(fā)起的網絡請求怎么辦呢?百度的回復有可能視乎網絡介質的不同有快慢之分,可能快也可能慢,反正不能準確地知道它什么時候會到來。但是CPU在這段時間的空擋是肯定不能浪費??!
這時候,聰明的工程師就跟CPU說,在發(fā)完這個請求以后,你就放心去完成其他任務吧!當百度的回復到了,你會收到短信的,到時候你手機一響,就來處理百度的回復,并反饋給用戶看吧!
那么,上面工程師所提到的“當百度的回復到來后,會給CPU發(fā)短信”,就是提問主所問到的回調函數(shù)了。
很多時候,回調就是為了告訴你,某項任務完成了,例如將文件寫入硬盤完成了,網絡請求接受到響應了,將π計算到30萬位這項任務完成了…
希望能對你有幫助!
什么是回調函數(shù)?
普通函數(shù)與回調函數(shù)主要是在調用方式上有區(qū)別:
1、對普通函數(shù)的調用:調用程序發(fā)出對普通函數(shù)的調用后,程序執(zhí)行立即轉向被調用函數(shù)執(zhí)行,直到被調用函數(shù)執(zhí)行完畢后,再返回調用程序繼續(xù)執(zhí)行。從發(fā)出調用的程序的角度看,這個過程為“調用-->等待被調用函數(shù)執(zhí)行完畢-->繼續(xù)執(zhí)行”。
2、對回調函數(shù)調用:調用程序發(fā)出對回調函數(shù)的調用后,不等函數(shù)執(zhí)行完畢,立即返回并繼續(xù)執(zhí)行。這樣,調用程序執(zhí)和被調用函數(shù)同時在執(zhí)行。當被調函數(shù)執(zhí)行完畢后,被調函數(shù)會反過來調用某個事先指定函數(shù),以通知調用程序:函數(shù)調用結束。這個過程稱為回調(Callback),這正是回調函數(shù)名稱的由來。擴展資料