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