在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞? 7 什么是异步阻塞? 8 什么是异步非阻塞? 在弄清楚上面的几个问题之前,我们首先得明白什 ...
分类:
编程语言 时间:
2016-10-18 18:19:48
阅读次数:
184
同步阻塞IO(JAVA BIO): 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 异步阻塞IO(Java NIO): 异步阻塞,应用程序发起一个IO操作以后,不等待内 ...
分类:
其他好文 时间:
2016-10-12 16:53:12
阅读次数:
154
接下来我们将介绍几种常见的I/O模型及其区别 blocking I/O nonblocking I/O I/O multiplexing (select and poll) signal driven I/O (SIGIO) asynchronous I/O (the POSIX aio_funct ...
分类:
其他好文 时间:
2016-09-24 16:12:57
阅读次数:
121
今天在看nginx thread pool的时候,频繁的看到sendfile,其实以前也经常看到sendfile,只是我平时选择性的忽视而已。。。 先说下sendfile,明天在好好聊下nginx 线程池的一些突发点, 通过伪官方的博客介绍了如何利用nginx 线程池aio,实现9倍的性能…. 个人 ...
分类:
系统相关 时间:
2016-09-12 14:03:08
阅读次数:
268
1. 什么是NIO NIO是New I/O的简称,与旧式的基于流的I/O方法相对,从名字看,它表示新的一套Java I/O标 准。它是在Java 1.4中被纳入到JDK中的,并具有以下特性: NIO是基于块(Block)的,它以块为基本单位处理数据 (硬盘上存储的单位也是按Block来存储,这样性能 ...
分类:
编程语言 时间:
2016-09-09 10:07:01
阅读次数:
211
转自:http://blog.chinaunix.net/uid-24567872-id-87677.html 首先,贴一下异步IO中用的的一些结构体,因为平常很少用,整理起来方便查看。aio.h中的struct aiocb struct aiocb{ int aio_fildes; /* File ...
分类:
系统相关 时间:
2016-09-07 01:03:22
阅读次数:
212
【转自】http://qindongliang.iteye.com/blog/2018539 在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞 ...
分类:
编程语言 时间:
2016-08-22 18:17:21
阅读次数:
199
Linux Native Aio 异步AIO的研究 http://rango.swoole.com/archives/282 首先声明一下epoll+nonblock从宏观角度可以叫做全异步,但从微观的角度来看还是同步的IO。只是在数据到达后得到系统通知,然后同步执行recv取回数据,没有iowai ...
分类:
系统相关 时间:
2016-08-21 12:29:42
阅读次数:
233
这部分的内容主要包括Epoll/select的封装,在封装好相应函数后,再使用一个类来管理相应事件,实现的文件为pollmgr.{h, cc}。 事件函数封装 可看到pollmgr.h文件下定一个了一个虚基类aio_mgr 1 class aio_mgr { 2 public: 3 virtual ...
分类:
其他好文 时间:
2016-08-18 01:09:45
阅读次数:
196