找到约 1646 条结果
  • Redis有哪些事件
    事件的个数对应入参里的 server.maxclients+CONFIG_FDSET_INCR, server.maxclients 变量的值大小,可以在 Redis 的配置文件 redis.conf 中进行定义,默认值是 1000。 CONFIG_FDSET_INCR 的大小 = 32 + 96
    2023-01-26
  • 你真的懂Linux内核中的阻塞和异步通知机制吗?
    阻塞操作是指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作的条件后再进行操作。被挂起的进程进入睡眠状态,被从调度器的运行队列移走,直到等待的条件被满足。而非阻塞操作的进程在不能进行设备操作时,并不挂起,它要么放弃,要么不停地查询,直至可以进行操作为止。
    2020-12-26
  • 面试官:谈谈你对IO多路复用的理解?
    “IO 多路复用”是编程中常见的技术词汇,使用这种技术的框架有很多,如,Redis、Kafka、Netty、Nginx 中都用到了此技术。那问题来了,什么是 IO 多路复用?它的具体实现技术有哪些?这些技术之间有什么区别?今天我们就来简单的探讨一下。
    2024-09-26
  • 由Nodejs来说I/O
    Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
    2015-09-23
  • 【源起Netty 前传】Linux网络模型小记
    之前的两篇文章 FastThreadLocal怎么Fast?、ScheduledThreadPoolExecutor源码解读 搞的我心力交瘁,且读源码过程中深感功力不足,遂决定“磨刀”——先达到较熟练使用netty的程度,再回过头来继续啃源码!至于“磨刀石”嘛,选择了《Netty权威指南》(第二版)……哎呦,不错奥!
    2018-02-06
  • select、poll、epoll的原理与区别 转载
    1、select {代码...} 缺点: {代码...} 2、poll {代码...} 3、epoll {代码...} 由此可见:ET模式的效率比LT模式的效率要高很多。只是如果使用ET模式,就要保证每次进行数据处理时,要将其处理完,不能造成数据丢失,这样对编写代码的人要求就比较高。 注意:ET模式只支持非阻塞的读写:为了保证数据的完整性。
    2020-03-21
  • Go netpoller 原生网络模型之源码全面揭秘
    Go 基于 I/O multiplexing 和 goroutine scheduler 构建了一个简洁而高性能的原生网络模型(基于 Go 的 I/O 多路复用 netpoller ),提供了 goroutine-per-connection 这样简单的网络编程模式。在这种模式下,开发者使用的是同步的模式去编写异步的逻辑,极大地降低了开发者编写网络应用时的心智负担,且借助于 Go runtime...
    2020-12-28
  • 【Android】MessageQueue、Looper、Handler
    [链接]MainLooper附着在主线程上Looper.looper()循环从MeesageQueue获取消息交给Handler处理Handler向MessageQueue发送消息当队列为空时,将调用nativePollOnce方法,该方法将一直阻塞知道新的消息到来,在某个文件描述符上调用epoll_wait,新消息到来时将写入一个 IO 操作到描述符,唤醒线程。
    2019-12-18
  • 从java的NIO版hello world看java源码,我们能看到什么?
    SelectorProvider提供的所有provider都是同一个对象。如果没有,它会通过AccessController.doPrivileged来给获取provider的代码最高的权限,执行逻辑是:
    2018-07-15
  • 深入浅出 Redis client/server交互流程
    最近笔者阅读并研究redis源码,在redis客户端与服务器端交互这个内容点上,需要参考网上一些文章,但是遗憾的是发现大部分文章都断断续续的非系统性的,不能给读者此交互流程的整体把握。所以这里我尝试,站在源码的角度,将redis client/server 交互流程尽可能简单地展现给大家,同时也站在DBA的角度给出一些日常工作中...
    2018-02-03
  • 【业务学习】浅析服务器并发IO性能提升之路 — 从网络编程基础到epoll
    我们常常使用HTTP协议来传输各种格式的数据,其实HTTP这个应用层协议的底层,是基于传输层TCP协议来实现的。TCP协议仅仅把这些数据当做一串无意义的数据流来看待。所以,我们可以说:客户端与服务器通过在建立的连接上发送字节流来进行通信。这种C/S架构的通信机制,需要标识通信双方的网络地址和端口号信息。对于客户端...
    2019-08-26
  • 用 io_uring 替代 epoll 实现高速 polling
    前面的文章说到 io_uring 是 Linux 中最新的原生异步 I/O 实现,实际上 io_uring 也支持 polling,是良好的 epoll 替代品。
    2019-06-02
  • redis集群代理twemproxy源码阅读总结
    事件处理: event/nc_epoll.c、event/nc_event.h、event/nc_evport.c、event/nc_kqueue.c
    2023-06-26
  • UNIX 网络编程 chapter 6
    1. 阻塞式I/O : 直到读写完成或发生错误才返回,如被信号打断2. 非阻塞I/O : 无读写数据时直接返回错误,有数据时直接复制数据3. I/O复用 : 阻塞在select或poll上,而不是阻塞在真正的I/O系统调用上4. 信号驱动式I/O(SIGIO) : 让内核在描述符就绪时发送SIGIO信号通知我们5. 异步I/O(Posix的aio_系列函数): 告知内...
    2017-03-23
  • I/O 模式
    读缓冲区无数据:当读数据的速率超过写数据的速率,可能造成缓冲区无数据可读的情况,此时用户程序如果是阻塞 I/O 模式,那么用户程序将会进入等待,在linux中的具体操作就是从系统的 "Runable Queue” 中删除该进程,将其加入到等待队列“Wait Queue”。只有当设备通过“中断”告知了内核缓冲区已有数据或者内核轮询发现了缓...
    2021-11-25
  • Nginx基础篇(1)- Nginx的快速搭建和基本参数
    Nginx的快速搭建和基本参数 一、Nginx简介 1. Nginx简述 Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务。 2. 常见的HTTP服务 httpd - Apache IIS - 微软 GWE - Google tomcat - Sun 二、为什么选择Nginx 1. IO多路复用epoll 什么是IO多路复用 多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这就叫I/O...
    2018-07-10
  • (思维进阶)一、进阶知识梳理一+算法(tree)
    (1).null合并运算符(??)$param = $_GET['param'] ?? 1;//1(2).define() 定义常量数组(3).组合比较符(<=>)echo "a" <=> "a"; // 0 => 成立顺序对应-1.0.1(4).变量类型声明两种模式: 强制(默认)和严格模式declare(strict_types=1);//值为1代表为严格校验的模式(5).返回值类型声明(6).PHP7 错误处理PHP7 改...
    2019-07-10