2014-02-10 74 views
1

我讀了Netty的頻道的Javadoc:http://netty.io/4.0/api/io/netty/channel/Channel.html訂購的多通道#寫

在我的單線程(Netty中的IO線程外),如果我叫Channel#write很多次:

channel.write(msg1); 
channel.write(msg2); 
channel.write(msg3); 

Will Netty會確保消息按順序輸出:msg1,msg2,msg3? 或者我必須手動確保訂單(非常單調乏味,非常難看)?

ChannelFuture f1 = channel.write(msg1); 
f1.addListener(new ChannelFutureListener() { 
    public void operationComplete(ChannelFuture future) { 
    ChannelFuture f2 = channel.write(msg2); 
    f2.addListener(new ChannelFutureListener() { 
     public void operationComplete(ChannelFuture future) { 
     channel.write(msg3); 
     } 
    }); 
    } 
}); 

回答

1

答案是肯定的

通道是線程安全的,這意味着它是安全的,從不同的 線程操作就可以了。此外,此方法可保證消息的寫入順序與您將 傳遞給寫入方法的順序相同