Java高並發教程:Future異步回調模式
Join異步阻塞
FutureTask異步回調
Guava異步回調
Netty的異步回調
Netty和Guava一樣,實現了自己的異步回調體系:Netty繼承和擴展了JDK Future系列異步回調的API,定義了自身的Future系列接口和類,實現了異步任務的監控、異步執行結果的獲取。
總體來說,Netty對Java Future異步任務的擴展如下:
(1)繼承Java的Future接口,得到了一個新的屬於Netty自己的Future異步任務接口;該接口對原有的接口進行了增強,使得Netty異步任務能夠以非阻塞的方式處理回調的結果;
注意:Netty沒有修改Future的名稱,只是調整了所在的包名,Netty的Future類的包名和Java的Future接口的包名不同。
(2)引入一個新接口,GenericFutureListener,用於表示異步執行完成的監聽器。Netty使用了監聽器的模式,異步任務的執行完成后的回調邏輯抽象成了Listener監聽器接口。可以將Netty的GenericFutureListener監聽器接口加入Netty異步任務Future中,實現對異步任務執行狀態的事件監聽。
總體上說,在異步非阻塞回調的設計思路上,Netty和Guava的思路是一致的。
參考資料
- 《Netty、Redis、Zookeeper高並發實戰》