阻塞IO(blocking IO) 在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据。对于network io来说,很多时候数据在一开始还没有到达(比如,还 ...
分类:
其他好文 时间:
2019-10-13 11:28:45
阅读次数:
78
非阻塞IO(non blocking IO) Linux下,可以通过设置socket使其变为non blocking。当对一个non blocking socket执行读操作时,流程是这个样子: 从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会bloc ...
分类:
其他好文 时间:
2019-10-13 10:45:38
阅读次数:
79
一.进程 新进程的创建都是由一个已经存在的进程执行了一个用于创建进程的系统调用而创建的。 1.在UNIX中:fork会创建一个与父进程一摸一样的副本 2.在Windows:系统调用CreateProcess创建进程 进程的状态 程序遇到IO操作(Input、output),会阻塞,IO完成会进入就绪 ...
分类:
系统相关 时间:
2019-10-03 23:39:28
阅读次数:
103
网络编程之IO模型——非阻塞IO 非阻塞IO(non blocking IO) Linux下,可以通过设置socket使其变为non blocking。当对一个non blocking socket执行读操作时,流程是这个样子: 从图中可以看出,当用户进程发出read操作时,如果kernel中的数据 ...
分类:
其他好文 时间:
2019-09-28 16:19:22
阅读次数:
119
1.TornadoTornado:python编写的web服务器兼web应用框架1.1.Tornado的优势轻量级web框架异步非阻塞IO处理方式出色的抗负载能力优异的处理性能,不依赖多进程/多线程,一定程度上解决C10K问题WSGI全栈替代产品,推荐同时使用其web框架和HTTP服务器1.2.To ...
分类:
其他好文 时间:
2019-09-23 12:01:11
阅读次数:
86
初识: java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。 在讲 BIO,NIO,AIO 之前先来回顾一下这 ...
分类:
编程语言 时间:
2019-09-22 23:58:57
阅读次数:
215
从Java 1.4开始,Java提供了新的非阻塞IO操作API,用意是替代Java IO和Java Networking相关的API。 NIO中有三个核心组件: Buffer缓冲区 Channel通道 Selector选择器 一、Buffer缓冲区 缓冲区本质上是一个可以写入数据的内存块(类似数组) ...
分类:
编程语言 时间:
2019-09-15 19:58:42
阅读次数:
141
ngnix io模型: io总线--数据总线--控制总线 编程:一个io io:--传输数据 1.等待数据传输(数据包--分片) 2.重组数据包,并读取请求(数据部分)传递到用户空间 同步到io模型: 阻塞io 一个进程对应io; 进程在等待这个io进行数据重组,以及传输的时候,是一直要监听这个io ...
分类:
其他好文 时间:
2019-09-12 16:30:55
阅读次数:
89
IO操作 同步和异步IO 阻塞和非阻塞IO 同步与异步(线程间调用) 阻塞与非阻塞(线程内调用) 同步与异步调用/线程/通信 四种组合方式 ...
分类:
其他好文 时间:
2019-09-07 10:29:28
阅读次数:
104
BIO:同步阻塞IO(平常说的IO指的是BIO)NIO:同步非阻塞IOAIO:异步非阻塞IO io操作分为两部分,发起io请求,和io数据读写。 阻塞、非阻塞主要是针对线程发起io请求后,是否立即返回来定义的,立即返回称为非阻塞io,否则称为阻塞io。 同步、异步主要针对io数据读写来定义的,读写数 ...
分类:
其他好文 时间:
2019-08-31 11:05:32
阅读次数:
91