Netty需要在与延迟发送的select()相同的线程中发送

时间:2011-11-30 02:04:50

标签: multithreading netty

Netty是否可以创建一个工作线程来完成一组套接字的所有发送?目前看来,netty将出站消息发布到队列并尝试唤醒选择器,然后选择器将数据复制到未使用的缓冲区并发送它。这需要时间。是否可以直接从其他线程发送?

1 个答案:

答案 0 :(得分:3)

这是不可能的。 Netty不知道用户将从哪个线程调用write()。因此,它需要一个写请求队列和一个专用循环来执行写操作。否则,应用程序将受到争用,具体取决于用户如何编写他/她的应用程序。在负载下,拥有专用的I / O循环并运行带有流水线的协议似乎可以产生更高的吞吐量。