开发者社区 问答 正文

work之间为什么要独立使用epoll?为什么不共享?

work之间为什么要独立使用epoll?为什么不共享?

展开
收起
xi哈啥哈 2022-04-30 09:13:03 389 分享 版权
来自: 阿里技术
1 条回答
写回答
取消 提交回答
  • 1.为了避免各个worker之间发生争抢连接处理,netty直接做了物理隔离,避免竞争。各个worker只负责处理自己管理的连接,并且后续该worker中的每个client的读写操作完全由 该线程单独处理,天然避免了资源竞争,避免了锁。 2.worker单线程,性能考虑:worker不仅仅要epoll_wait,还是处理read、write逻辑,加入worker处理了过多的连接,势必造成这部分消耗时间片过多,来不及处理更多连接,性能下降。

    2022-05-08 11:16:58
    赞同 展开评论
问答地址: