热门问题
时间线
聊天
视角
異步方法調用
来自维基百科,自由的百科全书
Remove ads
異步方法調用或異步方法模式是(多線程)面向對象程序設計中用於異步調用對象的潛在的長期運行方法的一種設計模式[1]。它等價於Allan Vermeulen提出的IOU模式[2][3]。
基於事件的異步模式是異步方法調用的一個變種,開銷更大但能更好的表現軟件組件對象。.NET框架和Java中的java.util.concurrent.FutureTask
類中使用的基於事件的異步模式使用事件來解決同樣的問題。
大部分編程語言中對方法的調用是同步執行的。例如在線程執行體內,即線程的調用函數中,方法的調用就是同步執行的。如果方法需要很長的時間來完成,比方說從Internet加載數據的方法,調用者線程將被阻塞直到方法調用完成。如果不希望調用被阻塞,則可以通過創建新的worker線程並在worker線程中調用方法,在大多數編程環中上這樣做可能需要很長的一段代碼,尤其是需要小心處理線程過多的額外開銷。異步方法調用它通過使用一種立即返回的異步的變體並提供額外的方法來支持接受完成通知以及完成等待改進長期運行的(同步)方法。
活動對象(active object)設計模式通常使用異步方法調用。異步方法調用的一個替代方案是同步的方法調用和未來對象(future object)模式。[4] 在Web瀏覽器的實現上可以採用異步方法調用,例如瀏覽器需要在Web頁面中的圖像加載完成之前將頁面顯示出來。
Remove ads
參考來源
參考文獻
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads