node.js是基于Chrome V8的服务端JavaScript运行时 最新版本的node支持ES6语法(详见:http://node.green) node.js具有3大特点: 1. 单线程 2. 事件轮询 3. 异步非阻塞 上述3个特点使得node.js具有高并发的优势,但也具有 ...
分类:
Web程序 时间:
2019-12-29 20:25:38
阅读次数:
116
一个输入操作通常包括2个阶段: 1,等待数据报准备好 2,把数据从内核空间复制到用户空间(进程空间) 比如一个套接字的输入操作: 1,等待数据从网络中到达到内核缓冲区中 2,把数据从内核缓冲区复制到进程缓冲区 阻塞式IO 非阻塞IO 多路复用IO 信号驱动IO 异步IO 五种IO模型的比较 ...
分类:
系统相关 时间:
2019-12-29 18:14:25
阅读次数:
106
1、首先我们谈一下为什么Redis快: 一、 Redis是纯内存数据库,一般都是简单的存取操作,线程占用的时间很多,时间的花费主要集中在IO上,所以读取速度快。 二、 再说一下IO,Redis使用的是非阻塞IO,IO多路复用,使用了单线程来轮询描述符,将数据库的开、关、读、写都转换成了事件,减少了线 ...
分类:
其他好文 时间:
2019-12-28 16:37:10
阅读次数:
121
一。四种io阻塞1.io阻塞:(1 等待数据处于阻塞状态(2从内核copy到用户态处于阻塞状态2.非io阻塞只有从内核copy到用户态处于阻塞状态3.io多路复用 》优势:可以同时监听多个对象(1从check 》ready 通过selec函数来做,处于阻塞状态(2从内核copy到用户态处于阻塞状态3 ...
分类:
其他好文 时间:
2019-12-28 13:17:45
阅读次数:
161
四个相关概念:
同步(Synchronous)
异步 (Asynchronous)
阻塞 (Blocking)
非阻塞 (Nonblocking)
这四个概念的含义以及相互之间的区别与联系,并不如很多网络博客所写的那么简单,通过举一些什么商店购物,买书买报的例子就能讲清楚。 ...
分类:
其他好文 时间:
2019-12-23 22:46:41
阅读次数:
87
文档地址:https://www.cse.huji.ac.il/course/2004/com1/Exercises/Ex4/I.O.models.pdf 五种I/O模型: 1. blocking I/O 阻塞I/O 2. nonblocking I/O 非阻塞I/O 3. I/O multiple ...
分类:
其他好文 时间:
2019-12-23 00:20:32
阅读次数:
163
并发编程 核心: 并发,进程,线程,协程 并发与并行 并发:是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发并行:同时运行,只有具备多个cpu才能实现并行补充: 多道技术实现了单核下实现并发 同步 、异步 | 阻塞、非阻塞 同步 、异步: 是指任务提交的方式 同步:提交任务后原地等待 ...
分类:
其他好文 时间:
2019-12-22 14:29:17
阅读次数:
67
说明 以下内容为入门级介绍,意在对老技术作较全的总结而不是较深的研究。主要参考《构建高性能Web站点》一书。 什么是服务器并发处理能力 一台服务器在单位时间里能处理的请求越多,服务器的能力越高,也就是服务器并发处理能力越强 有什么方法衡量服务器并发处理能力 1. 吞吐率 吞吐率,单位时间里服务器处理 ...
分类:
其他好文 时间:
2019-12-22 00:31:41
阅读次数:
108
worker抢占机制 如下图所示,如果有一个请求,各个work进程会进行争锁。谁抢到是谁的。需要注意Nginx 所有worker进程协同工作的关键(共享内存). [accept_mutex的介绍] 当一个新连接到达时,如果激活了accept_mutex,那么多个Worker将以串行方式来处理,其中有 ...
分类:
Web程序 时间:
2019-12-21 20:32:57
阅读次数:
98
【1】Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快; 2.redis是单线程的,省去了很多上下文切换线程的时间; 3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写 ...
分类:
编程语言 时间:
2019-12-20 20:30:58
阅读次数:
102