码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • IO模型学习笔记


    高并发,高性能,高可用,三高
    高性能:性能是硬件决定的,编写高性能应用程序就是要少浪费硬件资源

    程序调用分为
    1.函数调用 最快,用户态内内存调用
    2.系统调用 调用操作系统内核的函数,要切换内核态,相对更慢
    3.RPC调用 应用程序->内核->网卡,最慢

    BIO:
    每个socket连接都要一个线程去处理,当有一万个客户端连接时也安排一万个线程去处理
    缺点,占内存,线程上下文切换频繁

    NIO:
    固定几个线程去轮询内核的所有socket,找到有数据的socket来处理
    缺点,每查询一个socket的状态都要系统调用,一万个socket轮询一次就要一万次系统调用
    当一万个socket只有一个有数据时也这样轮询,会有9999个空轮询

    IO多路复用:
    使用内核的select或者poll或者epoll函数一次性返回所有socket的状态集
    优点,只需要一次系统调用就能找到有数据的socket

    内核的select或者poll或者epoll这些函数的作用都是返回内核中所有socket的状态集
    三个函数有区别,目前epoll最优反正

    select:无差别轮询
    poll:忙轮询
    epoll:事件驱动
    在这里插入图片描述

  • 相关阅读:
    【数据结构基础_字符串】Leetcode 415.字符串相加
    基础 | 并发编程 - [LongAdder & Striped64]
    vue + koa + 阿里云部署 + 宝塔:宝塔前后端部署
    ctf:kali工具wireshark,nmap
    数据采集的数据源有哪些?
    Flutter开发实战之Google Play 最佳应用程序开发者分享Flutter经验与技巧
    【2018】【论文笔记】最后一米THz——
    神经网络反向传播的数学原理
    当光伏巡检走向全自动化
    Spring IoC和DI详解
  • 原文地址:https://blog.csdn.net/YMY_666/article/details/127826419
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号