为什么Netty使用“多生产者单消费者”队列?

为什么Netty使用“多生产者单消费者”队列?,netty,Netty,Netty-4的螺纹模型为: 每个EventLoop(线程)都拥有自己的taskQueue,此队列仅由此EventLoop(线程)操作。那么EventLoop的taskQueue是如何由“多个生产者”操作的呢?因为您可以从EventLoop的外部提交工作。例如,如果从另一个线程调用Channel.write(…),它将被分派到EventLoop进行处理。这意味着需要将其放入队列,这要求它至少是MPSC

Netty-4的螺纹模型为:


每个EventLoop(线程)都拥有自己的taskQueue,此队列仅由此EventLoop(线程)操作。那么EventLoop的taskQueue是如何由“多个生产者”操作的呢?

因为您可以从
EventLoop
的外部提交工作。例如,如果从另一个线程调用
Channel.write(…)
,它将被分派到
EventLoop
进行处理。这意味着需要将其放入
队列
,这要求它至少是MPSC