找到约 1645 条结果
  • Redis IO多路复用技术及epoll实现原理
    Redis是一个单线程的但性能是非常好的内存数据库,主要用来作为缓存系统。Redis采用网络IO多路复用技术来保证在多连接的时候,系统吞吐量高。1、为什么Redis要使用IO多路复用? 首先,Redis是跑在单线程中的,所有的操作都是顺序线性执行的,但是由于读写操作等待用户输入或者输出都是阻塞的,所以I/O操作往往不能直接返...
    2022-06-05
  • nginx 事件模块简单剖析
    事件循环的核心函数是 ngx_process_events_and_timers 。这个函数主要干了四件 事情:抢占 accept mutex,等待并分发事件,处理 accept 事件,处理其他io事件
    2015-04-28
  • select,poll,epoll只需要看这一篇就好了
    select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。epoll跟select都能提供多路I/O复用的解决方案。在现在的Linux内核里有都能够支持,其中epoll是Linux所特有,...
    2019-05-02
  • 深入理解LinuxIO复用之epoll
    0.概述 通过本篇文章将了解到以下内容: I/O复用的定义和产生背景 Linux系统的I/O复用工具 epoll设计的基本构成 epoll高性能的底层实现 epoll的ET模式和LT模式 1.复用技术和I/O复用 复用的概念 复用技术(multiplexing)并不是新技术而是一种设计思想,在通信和硬件设计中存在频分复用、时分复用、波分复用、码分复用等,在...
    2019-12-23
    1
  • 深入学习理解 IO 多路复用
    IO 模型相关内容主要参考自:The Sockets Networking API:Unix Network Programming Volume1 第三版第六章,以下 IO 模型说明图均拷贝自该书的 Oreilly Safari 版。
    2020-04-13
  • select模块
    概述Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqueue方法(freeBSD系统), 下面重点给大家介绍select、epoll方法
    2019-09-05
  • 【系列教程】 真正的高并发还得看IO多路复用
    首发地址day02 真正的高并发还得看IO多路复用项目仓库地址[链接],欢迎fork and star!往期教程day01-从一个基础的socket服务说起本节目的使用epoll实现一个高并发的服务器从单进程讲起上节从一个基础的socket服务说起我们实现了一个基本的socket服务器,并留了个思考题先启动server,然后启动一个client,不输入数据,...
    2022-04-27
  • Datenlord | Rust实现RDMA异步编程(一):基于epoll实现RDMA 异步操作
    RDMA是一套高性能网络协议栈,多用于高性能计算、高性能存储领域。RDMA的library是用C实现的,但是没有很好用的Rust的binding,不方便Rust开发者使用。于是我们正在封装一层符合Rust风格、便于Rust开发者使用的RDMA Rust binding。特别的,异步编程是近几年很受关注的编程方式,用Rust异步编程来实现IO操作,可以避免操...
    2022-07-18
  • 彻底学会使用epoll(二)——ET的读写操作实例分析
    相关视频推荐面试中正经“八股文”网络原理tcp/udp,网络编程epoll/reactorepoll 原理剖析 以及 reactor 模型应用epoll原理剖析以及三握四挥的处理LinuxC++后台服务器开发架构师免费学习地址彻底学会使用epoll(一)——ET模式实现分析接上一篇首先,看程序四的例子。l 程序四
    2021-09-15
  • Java网络编程和NIO详解6:Linux epoll实现原理详解
    微信公众号【黄小斜】作者是蚂蚁金服 JAVA 工程师,目前在蚂蚁财富负责后端开发工作,专注于 JAVA 后端技术栈,同时也懂点投资理财,坚持学习和写作,用大厂程序员的视角解读技术与互联网,我的世界里不只有 coding!关注公众号后回复”架构师“即可领取 Java基础、进阶、项目和架构师等免费学习资料,更有数据库、分布式...
    2019-08-23
  • 基于C++从0到1手写Linux高性能网络编程框架(超清)
    要从零开始使用 C++ 编写一个高性能的网络编程框架,我们需要考虑很多方面,包括但不限于多路复用(I/O multiplexing)、非阻塞 I/O、事件驱动模型、线程池等。下面是一个简化的示例,展示如何构建一个基于 Linux 的简单的非阻塞网络服务器框架。
    2024-07-29
  • IO多路复用(一)-- Select、Poll、Epoll
    当进程需要等待多个描述符的时候,通常情况下进程会开启多个线程,每个线程等待一个描述符就绪,但是多路复用可以同时监听多个描述符,进程中无需开启线程,减少系统开销,在这种情况下多路复用的性能要比使用多线程的性能要好很多。
    2018-09-14
  • 【Redis5源码学习】浅析redis中的IO多路复用与事件机制
    读这篇文章之前请先阅读:浅析服务器并发IO性能提升之路—从网络编程基础到epoll,以更好的理解本文的内容,谢谢。我们知道,我们在使用redis的时候,通过客户端发送一个get命令,就能够得到redis服务端返回的数据。redis是基于传统的C/S架构实现的。它通过监听一个TCP端口(6379)的方式来接收来自客户端的连接,从而进...
    2019-09-01
    2
  • epoll源码分析以及在Redis中的实现
    这篇文章分析一下linux中epoll的实现原理,主要为了增强自己对网络调用的理解。业界使用epoll的框架比较多,随便就能列出来很多,比如jdk的nio在linux下的实现,以及netty、redis等涉及到长链接网络请求的地方,我们都可以直接使用epoll。文末会从redis源码简单看看如何使用epoll做IO多路复用实现高并发。
    2020-08-23
  • select, poll, epoll
    IO多路复用里面被广泛使用的select、poll和epoll模型,IO多路复用实现的主旨思想是,不再由应用程序自己监视客户端连接,取而代之由内核替应用程序监视文件
    2020-09-07
  • 「NIO源码」JavaNIO源码 & JNI分析二:Java NIO源码分析
    没看过的建议先看上一篇,本来打算讲讲linux内核,也看了一些书籍,可是c放了太久了,看代码实在头疼,就先放弃了,写写业务也没必要卷这么深吧。就讲到调用底层api为止我觉得刚刚好。不太擅长将源码结合讲故事,所以整片略显枯燥,将就看下吧~~
    2022-09-23
  • epoll LT/ET 深入剖析
    Level Triggered (LT) 水平触发.socket接收缓冲区不为空 有数据可读 读事件一直触发.socket发送缓冲区不满 可以继续写入数据 写事件一直触发符合思维习惯,epoll_wait返回的事件就是socket的状态
    2016-03-13