zoukankan      html  css  js  c++  java
  • Netty网络高性能核心原理

    Reference:https://time.geekbang.org/column/article/338320

    为什么Netty网络处理性能高?

    因为Netty采用了Reactor模式。

    为什么用了Reactor模式性能就高?

    因为Reactor模式是基于IO多路复用的事件驱动模式。

    为什么IO多路复用性能高?

    因为IO多路复用既不会像阻塞IO那样没有数据的时候挂起工作线程,也不需要像非阻塞IO那样轮询判断是否有数据。

    为什么IO多路复用既不需要挂起工作线程,也不需要轮询?

    因为IO多路复用可以在一个监控线程里面监控很多的连接,没有IO操作的时候只要挂起监控线程;只要其中有连接可以进行IO操作的时候,操作系统就会唤起监控线程进行处理。

    为什么挂起监控线程,这样做性能就高?

    1. 如果采用阻塞工作线程的方式,对于Web这样的系统,并发的连接可能几万十几万,如果每个连接开一个线程的话,系统性能支撑不了;而如果用线程池的话,因为线程被阻塞的时候是不能用来处理其他连接,会出现等待线程的问题。

    2. 线上单个系统的工作线程数配置可以达到几百上千,这样数量的线程频繁切换有性能问题,而单个监控线程切换的性能影响可以忽略不计。

    3. 工作线程没有IO操作的时候可以做其他事情,能够大大提升系统的整体性能。

    强者自救 圣者渡人
  • 相关阅读:
    Reinforcement Learning Qlearning 算法学习3 AI
    2012年末工作中遇到的问题总结及感悟
    对JMS的一些认识
    readme
    数据库表扩展字段设计思路
    对网络安全性和apache shiro的一些认识
    JDK版本的了解
    下拉框“数据字典”设计
    缓存学习总结
    apache commons包简介
  • 原文地址:https://www.cnblogs.com/agilestyle/p/14353971.html
Copyright © 2011-2022 走看看