我正在阅读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);
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);
}
});
}
});
答案 0 :(得分:2)
答案是肯定的
频道是线程安全的,这意味着可以安全地对其进行操作 线程。此外,此方法可确保以与传递的顺序相同的顺序写入消息 他们写的方法