2
我使用netty 4.10beta6。在netty中,是否可以将汇集的ByteBuf传递给另一个线程?
在信道A,I通过重写channelRead()
(其使用由默认汇集BUF分配器)读取ByteBuf
,通过它传递给channelB.write(buf)
,其中信道B的事件循环是在不同的线程消耗&释放在信道B中的buf中。这个可以吗?
我问,因为我部分读取PooledByteBufAllocator
的来源,它使用线程本地缓存,似乎不假设跨线程工作。
我做了小测试,它工作正常,要确保它是否持续长时间运行。
嗨,@Norman Maurer,在我的情况下,我从当前线程传递由共享池分配器创建的内容填充的bytebuf,然后在另一个线程中读取/关闭bytebuf。 netty有时会抛出异常:'io.netty.util.IllegalReferenceCountException:refCnt:0'。这意味着池分配器给我一个已经释放的bytebuf。我怎样才能解决这个问题? – bob