回調函數之同步調用、回調、異步調用


軟件模塊中存在一定接口,從調用方式上分為三類

1、同步調用;2、回調;3、異步調用

首先,同步調用是一種阻塞式調用,調用方要等待對象執行完畢才返回。它是一種單向調用。

其次,回調是一種雙向調用模式,也就是說,被調用方在接口被調用得同時會調用對方得接口。

最后,異步調用是一種類似消息或者事件的機制,不過它的調用方向剛好相反,接口的服務在收到被調用的信息或事件時,會主動調用(調用方)的接口。

回調和異步調用得關系非常緊密,通常我們使用回調來實現異步消息的注冊,通過異步調用來實現消息的通知。

對於不同類型的語言(結構化語言和對象語言)、平台(win32,jdk)等,客戶和服務的交互除了同步方式以外,都需要具備一定的異步通知機制,讓服務方或接口提供方,在某些情況下能主動通知客戶,而回調是實現異步的一個最簡捷的途徑。

結構化語言中,可以通過回調函數還實現回調,回調函數也是一個函數或過程,不過它是一個由調用方自己實現,供被調用方使用的特殊函數。

在面向對象語言中,回調則是通過接口或抽象類來實現的,我們把實現這種接口的類稱為回調類,回調類的對象稱為回調對象。對於象C++或objectPascal這些兼容了過程特性的對象語言,不僅提供了回調對象、回調方法等特性,也行兼容過程語言的回調函數機制。

http://hi.baidu.com/zhuyipeng/blog/item/863fefdb7c736c63d1164eec.html來


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM