来自Apache Mina,调度到IO或工作线程利用执行程序线程池中的所有可用线程,其中Netty在注册到特定IO或工作线程的通道(连接)时更多地充当负载均衡器。使用此模型,当有可用线程时,通道可能必须等待固定线程。我的理解是这样做是为了确保通道上的消息顺序,但是有一些技术可以确保消息顺序而不必固定线程。将通道固定到特定线程是否有一些固有的优势?
我将线程的固定视为服务器吞吐量的问题,因为可能存在空闲线程,并且可能存在不必要地等待的信道。线程的固定是否是一个不易修改的强大框架原则?
答案 0 :(得分:0)
我的理解是,当从Netty 3迁移到Netty 4时,这是一个有意的改变。这个设计决策的一个好处是编写线程安全处理程序变得更容易。
3.x中没有明确定义的线程模型,尽管尝试在3.5中修复其不一致性。 4.0定义了一个严格的线程模型,可以帮助用户编写ChannelHandler,而不必担心线程安全问题。
4.0中的更改说明
如果您对修改行为感兴趣,可以阅读一些内容