NodeJS的作者说,他创造NodeJS的目的是为了实现高性能Web服务器,他首先看重的是事件机制和异步IO模型的优越性,而不是JS。但是他需要选择一种编程语言实现他的想法,这种编程语言不能自带IO功能,并且需要能良好支持事件机制。JS没有自带IO功能,天生就用于处理浏览器中的DOM事件,并且拥有一 ...
分类:
Web程序 时间:
2020-04-11 13:03:43
阅读次数:
118
IO操作不外乎读和写,但是不同场景对读写有不同的需求,例如网络中同时监控多个文件句柄,例如关键数据希望一路刷到存储设备而不是扔到cache就返回。怎么读,怎么写,等不等结果返回,是否等获取到数据才发返回,组成了不同的IO模型,分别适用于不同的场景。 ...
分类:
系统相关 时间:
2020-04-07 12:39:42
阅读次数:
72
一,五种IO模型: 一个IO操作可以分为两个步骤:发起IO请求和实际的IO操作例如:1、操作系统的一次写操作分为两步:第一步,将数据从用户空间拷贝到系统空间;第二步,从系统空间往网卡写。2、一次读操作也分为两步:第一步,将数据从网卡拷贝到系统空间;第二步,将数据从系统空间拷贝到用户空间。 阻塞IO和 ...
分类:
其他好文 时间:
2020-04-06 17:35:20
阅读次数:
77
No.30 今日概要 非阻塞IO模型 验证客户端合法性 socketserver模块 计算器 内容回顾 TCP协议的粘包问题 本质:接收的边界不清晰 解决方式:自定义协议 文件发送自定义协议 先发送报头字典的字节长度 再发送字典(字典中包含文件的名字、大小.....) 最后发送文件内容 TCP和UD ...
分类:
其他好文 时间:
2020-04-05 23:56:33
阅读次数:
106
在学习网络框架Netty之前,先补充了一下自己对Java 几种IO模型的学习和理解。分别是 BIO、NIO、AIO三种IO模型。 ...
分类:
编程语言 时间:
2020-03-30 09:44:32
阅读次数:
106
配置springcloud的gateway的时候,需要用到webflux,所以需要学习一下。以下是目前我的理解,可能不正确,但是会持续修正。 什么是webflux?目前的认知是异步非阻塞IO的webMVC,因为之前的Springmvc是基于同步阻塞IO模型的Servlet实现的,包括tomcat,j ...
分类:
Web程序 时间:
2020-03-22 19:44:56
阅读次数:
166
1、同步阻塞IO模型 当容器中只有三个线程接收请求,当有四个请求过来的时候,就会Block住,得不到及时的响应 2、异步非阻塞式IO模型 Spring Boot webflux是异步非阻塞式IO模型,容器线程将耗时的任务(IO密集型任务)交给work线程来处理 3、webflux应用场景 4、web ...
分类:
编程语言 时间:
2020-03-09 15:07:33
阅读次数:
64
我们使用中断的目的,就是为了在中断发生时,才去读操作,避免像查询一样一直read,从而占据大量的CPU。 一、阻塞: 当进程在读取外部设备的资源(数据),资源没有准备好,进程就会休眠。 linux应用中,大部分的函数接口都是阻塞 scanf(); read(); write(); accept(); ...
分类:
其他好文 时间:
2020-03-01 00:39:52
阅读次数:
72
引入 Redis,Nginx,Netty,Node.js 为什么这么香?这些技术都是伴随 Linux 内核迭代中提供了高效处理网络请求的系统调用而出现的。今天我们从操作系统层面理解 Linux 下的网络 IO 模型! I/O( INPUT/OUTPUT),包括文件 I/O、网络 I/O。计算机世界里 ...
分类:
其他好文 时间:
2020-02-28 12:19:54
阅读次数:
46
LinuxLinux进程调度算法Linux进程地址空间分布Linux内存管理方法,页面置换算法,逻辑地址和物理地址的转换在一台内存为2G的机器上,malloc(20G)会怎么样?new20G呢?进程和线程的区别,进程间通信方式解释孤儿进程,僵死进程,惊群效应IO模型,Select、Epoll和Poll的区别ET和LT的区别,需要注意什么计算机网络TCP三次握手四次挥手状态图,对应的POSIXAPI
分类:
编程语言 时间:
2020-02-26 23:00:08
阅读次数:
121