IO操作可以分为3类:同步阻塞(BIO)、同步非阻塞(NIO)、异步(AIO)。 同步阻塞(BIO):在此种方式下,用户线程发起一个IO操作以后,必须等待IO操作的完成,只有当真正完成了IO操作以后,用户线程才能做后续的事情。 同步非阻塞(NIO): 在此种方式下,用户线程发起一个IO操作以后,可返 ...
分类:
其他好文 时间:
2016-08-17 22:58:46
阅读次数:
128
问题描述: 今天突然想写一个socket通信的小应用,分别采用BIO、NIO、AIO的方式来实现,来复习前面看的关于TCP/UDP通信的知识。于是乎在原来安装了jdk1.6的机子上重新安装了jdk1.8。结果就出现了一个很蛋疼的问题:我原来的JAVA_HOME配置根本就没有改变,但是在命令行执行 j ...
分类:
编程语言 时间:
2016-08-17 19:30:33
阅读次数:
527
Unix下共有五种I/O模型: 1. 阻塞式I/O 2. 非阻塞式I/O 3. I/O复用(select和poll) 4. 信号驱动式I/O(SIGIO) 5. 异步I/O(POSIX的aio_系列函数) io请求分两步: 1. 先将数据从存储介质(磁盘,网络等)拷贝到内核缓冲区,此时称为数据准备好 ...
分类:
其他好文 时间:
2016-08-10 14:07:56
阅读次数:
174
mysql5.6安装之后无法启用参数innodb_use_native_aio,error文件中也没有相应错误。mysql>showvariableslike‘innodb_use_native_aio‘;+-----------------------+-------+|Variable_name|Value|+-----------------------+-------+|innodb_use_native_aio|OFF|+---------------..
分类:
数据库 时间:
2016-08-05 18:09:19
阅读次数:
300
http://my.oschina.net/bluesky0leon/blog/132361 也谈BIO | NIO | AIO (Java版) 转载自:zheng-lee博客 发布时间: 2013/05/21 12:56 也谈BIO | NIO | AIO (Java版) 转载自:zheng-le ...
分类:
其他好文 时间:
2016-08-05 15:40:49
阅读次数:
119
AIO:异步非阻塞 NIO:同步非阻塞 BIO:同步阻塞 (1)同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 (2)异步 指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知 (3)阻塞 指当试图对该文件描述符进行读写时, 如果当时没 ...
分类:
其他好文 时间:
2016-07-22 13:04:39
阅读次数:
195
现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。再者,现在互联网的面试中上点level的都会涉及一下NIO或者AIO的问题(AIO下次再讲述,本篇主要讲述NIO),掌握 ...
分类:
编程语言 时间:
2016-07-08 13:50:57
阅读次数:
238
使用异步I/O大大提高应用程序的性能
linux下有两种aio,一种是glibc实现的aio,这个比较烂,它是直接在用户空间用pthread进行模拟的。还有一种就是内核实现的aio,这些系统调用是以io_xxx开始的。下面将针对 同步和异步模型,以及阻塞和非阻塞的模型进行介绍。而native aio的优点就是能够同时提交多个io请求给内核,然后直接由内核的io调度算法去处理这些请求(direct...
分类:
其他好文 时间:
2016-06-28 12:58:08
阅读次数:
249
Unix下可用的5种I/O模型:
阻塞I/O
非阻塞I/O
I/O复用(select和poll)
信号驱动I/O(SIGIO)
异步I/O(POSIX的aio_系列函数)
一个输入操作通常包括两个不同的阶段:
1)等待数据准备好;
2)从内核向进程复制数据;
对于一个套接字的输入操作,第一步通常涉及等待数据从网络中到达。当所等待分组到达时,它被复制到内核中某个缓冲区。...
分类:
系统相关 时间:
2016-06-19 11:40:51
阅读次数:
306