Selector数量问题
来源:12-2 单机百万连接模拟与瓶颈

Netty0
2019-07-04
NioEventLoop在构造函数中会open一个Selector并保存下来
selector = provider.openSelector();
-
那么是不是一个NioEventLoop就对应一个Selector?假设处理器 * 2 = 16,那么就是有16个NioEventLoop,随之开启16个selctor实例?还是一个NioEventLoopGroup下的所有子NioEventLoop共享一个selector?
-
个人拙见一个NioEventLoop就会对应一个Selector,那么在NioEventLoop 中的run方法,调用selector.wakeup()这个方法唤醒selector是有什么用意吗?只会有一个线程去调用selector.select()被阻塞(因为一个selector对应一个NioEventLoop对应一个线程),这个线程被阻塞又怎么抽开身去唤醒,那么可以视为selector.wakeup()并不是为了唤醒被阻塞的NioEventLoop线程,那么是为了什么呢?
感谢老师花时间阅读我的问题,感谢回答!
写回答
1回答
-
一个 NioEventLoop 对应一个 selector;
NioEventLoop 对应的线程部分逻辑会阻塞去等待事件发生,而这个时候如果外部线程调用 NioEventLoop.submit(xx),这个时候,NioEventLoop 需要 wakeup
012019-07-09
相似问题