eventloop#submit()vs#execute()vs channel#writeandflush()

pwuypxnk  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(437)

向通道写入字节时,这3种方法有什么区别?
在我的例子中,写入这些字节的线程不是属于通道eventloop的线程,我知道io事件总是发生在通道分配的eventloop线程上。
我试图通过尽快刷新这些字节来最小化延迟。为了更好地理解我可以做些什么来优化它,我需要知道这三种将数据写入通道的方法之间的区别,以及我可能错过的任何其他方法?

byte[] data = ...
Channel channel = ...
// 1
channel.eventLoop().submit(() -> channel.writeAndFlush(data));

// 2
channel.eventLoop().execute(() -> channel.writeAndFlush(data));

// 3
channel.writeAndFlush(data);
y3bcpkx1

y3bcpkx11#

所以对于你在这里所做的,除了返回值的不同,其实没有太大的区别 writeAndFlush 正在传播。

相关问题