netty通道池操作线程安全吗?

时间:2016-04-18 19:45:49

标签: netty pool

我正在使用netty的FixedChannelPool来维护并发连接。由于多个线程将访问通道池,我想知道操作acquire()和release(通道)是否是线程安全的?

TIA

1 个答案:

答案 0 :(得分:0)

FixedChannelPool中有关于此问题的评论: // There is no need to worry about synchronization as everything that modified the queue or counts is done by the above EventExecutor.

但我认为这不是线程安全的,因为可以将connect promise添加到任何eventloop线程的taskQueue中。如果相同键的连接承诺添加到两个不同的eventloop的taskQueue中,当它们由eventloop执行时,这将导致非线程安全的情况,这意味着如果你将最大通道数设置为1,如果你调用同时获取,您可以创建2个频道。

请指出我是否在理解这些逻辑时犯了错误。