1. 程式人生 > >Netty 中 ChannelFuture 介面的作用

Netty 中 ChannelFuture 介面的作用

正如我們所知道的Netty中所有的I/O操作都是非同步的,由於一個操作的結果可能不會立即返回,所有我們需要一種可以在之後的某個時間點確定其結果的方法,為此,Netty提供了ChannelFuture介面,就如JavaJdk中的Future 介面可以返回執行緒的執行結果一樣,我覺得 起名字叫 ChannelFuture也是向 JavaJdk中的Future或FutureTask介面靠攏以便可以讓使用的人在熟悉JavaJdk的基礎上容易理解和接受。在ChannelFuture介面中,其addListener()方法註冊了一個ChannelFuturerListener,以便在某個操作完成時(無論是否成功)得到通知。這個相比較於JavaJdk的Future或FutureTask大大改善了獲取執行緒返回結果的方式,在JavaJdk的Future中需要使用 isdone方法來判斷是否執行完畢。

此外,所有屬於同一個Channel的操作都被保證其將以它們被呼叫的順序被執行。