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操作的时候可以做其他事情,能够大大提升系统的整体性能。

    强者自救 圣者渡人
  • 相关阅读:
    Linux查看系统资源占用
    覆盖索引有何用?
    Java8新特性
    架构的力量!!2016解密互联网公司架构技术
    作为程序员,如何防辐射?
    Mysql查询正在运行的事务以及杀掉它
    Hbase设计实战
    不可不知的网络知识与工具
    MySQL数据库事务剖析
    dos插入mysql乱码
  • 原文地址:https://www.cnblogs.com/agilestyle/p/14353971.html
Copyright © 2011-2022 走看看