5
我的Netty渠道處理程序channelClosed()
被阻止,而在messageReceived()
收到另一個消息。我使用OrderedMemoryAwareThreadPoolExecutor
來同步消息。
是由低優先級線程處理channelClosed()
。Netty簡單渠道處理程序斷開被阻止
請問您可以告訴netty中的線程優先級。 謝謝
objChannelPipeline.addLast("ipFilter", objCustomIPFilterHandler);
objChannelPipeline.addLast("idleHandler", new IdleStateHandler(timer,5,5, 0));
objChannelPipeline.addLast("loggingHandler", objLoggingHandler);
objChannelPipeline.addLast("frameDecoder",
new DelimiterBasedFrameDecoder(Integer.MAX_VALUE, false, ChannelBuffers.copiedBuffer("\n\n".getBytes(CharsetUtil.UTF_8))));
objChannelPipeline.addLast("messageDecoder", new CustomMessageDecoder());
objChannelPipeline.addLast("groupOrder", executionHandler);
objChannelPipeline.addLast("ProtocolMultiplexer", CustomHandler);
該場景是一個通道關閉,同時另一個通道連接並通過該通道接收消息。 – user2067201 2013-03-25 11:19:05
@ user2067201。在這種情況下,'messageReceived'也可以在'channelClose()'事件之前調用,因爲它們在不同的通道上發生。但是沒有線程優先級與事件相關聯,因此它們可以按任何順序發生。 – 2013-03-25 11:48:02
謝謝您的回覆。我首先收到頻道關閉事件,但是當messageReceived()m – user2067201 2013-03-25 11:50:08