[TOC] 一、I/O模型介绍 为了更好地了解I/O模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) I/O和异步(asynchronous) I/O,阻塞(blocking) I/O和非阻塞(non blocking)I/O分别是什么,到底有什么区别?这个问题其实 ...
分类:
其他好文 时间:
2019-07-06 17:41:29
阅读次数:
109
下面都是以网络读数据为例 【2阶段网络IO】 第一阶段:等待数据 wait for data 第二阶段:从内核复制数据到用户 copy data from kernel to user 下面是5种网络IO模型 【阻塞blocking IO】 两阶段全程阻塞 recvfrom -> [syscall ...
分类:
其他好文 时间:
2019-06-26 09:32:55
阅读次数:
182
windows的重叠IO模型 2019年5月29日 11:58 同一线程内部向多个目标传输(或冲多个目标接收)数据引起的IO重叠现象称为"重叠IO"。为了完成这项任务,调用IO的函数应立即返回,只有这样才能返送后续数据。 重叠IO收发数据最重要的前提条件就是异步IO。 在windows中重叠IO的重... ...
IO模型Redis是单线程的,为什么支持高并发?node.js,nginx也是单线程的。除了Redis数据是存在内存里面的,所有操作都是内存级别的,还有其它原因导致它有如此高的性能?多路复用(事件轮训)多路复用是一种IO模型,那系统中还有哪些IO模式?一起来看看吧常见的IO模型同步阻塞IO(BlockingIO)传统IO模型,请求server,如果server没有返回,client会一直等待,直到
分类:
其他好文 时间:
2019-05-28 18:42:03
阅读次数:
139
read或write都是属于IO操作 比如socket的发送和接收就是IO操作 # 同步 提交一个任务之后要等待这个任务执行完毕# 异步 只管提交任务,不等待这个任务执行完毕就可以做其他事情# 阻塞 recv recvfrom accept# 非阻塞 # 阻塞 线程 运行状态 --> 阻塞状态 -- ...
分类:
其他好文 时间:
2019-05-21 22:50:52
阅读次数:
258
1、概述 select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负 ...
分类:
系统相关 时间:
2019-05-01 14:56:40
阅读次数:
158
近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,而笔者目前最常用的也只有Redis这一种。
如果你在以前面试的时候还没有遇到过面试官问你《为什么说Redis是单线程的以及Redis为什么这么快!》,那么你看到这篇文章的时候,你应该觉得是一件很幸运的事情!如果你刚好是一位高逼格的面试官,你也可以拿这道题去面试对面“望穿秋水”般的小伙伴,测试一下他的掌握程度。
好啦!步入正题!我们先探讨一下Redis是什么,Redis为什么这么快、然后在探讨一下为什么Redis是单线程的?
分类:
编程语言 时间:
2019-04-29 19:25:26
阅读次数:
148
以socket.read()为例子: 同步阻塞模型:传统的BIO里面socket.read(),如果TCP RecvBuffer里没有数据,函数会一直阻塞,直到收到数据,返回读到的数据。 同步非阻塞模型:对于NIO,如果TCP RecvBuffer有数据,就把数据从网卡读到内存,并且返回给用户;反之 ...
分类:
其他好文 时间:
2019-04-29 12:31:07
阅读次数:
124
Linux五种IO模型 同步和异步 这两个概念与消息的通知机制有关。 同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。比如,调用readfrom系统调用时,必须等待IO操作完成才返回。 异步 异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处 ...
分类:
系统相关 时间:
2019-04-20 19:50:09
阅读次数:
316
一是redis使用内存 而是redis使用多路复用的IO模型: 现代的UNIX操作系统提供了select/poll/kqueue/epoll这样的系统调用,这些系统调用的功能是:你告知我一批套接字,当这些套接字的可读或可写事件发生时,我通知你这些事件信息。 epoll的优点 epoll 没有最大并发 ...
分类:
其他好文 时间:
2019-04-09 20:29:45
阅读次数:
267