NIO-java
来源:互联网 发布:厦门国家会计学院知乎 编辑:程序博客网 时间:2024/06/05 20:23
java的NIO
- 三个主要概念
1.缓冲区
2.通道
3.就绪选择:Selector
NIO和原来的IO是不一样的,NIO可以设置为非阻塞,如果用NIO编写一个客户端;
比如爬虫,那么就需要多个连接,这个时候就可以设置通道为非阻塞的,这样子就可以通过一个客户端创建N多的连接了,以前IO,要等一个连接创建成功,才可以创建下一个连接。
如果用NIO编写一个服务器端的程序,那么就可以用相应量的线程去处理不同并发量的连接了,netty就是基于NIO的。
通道是面向缓冲区的,缓冲区可以参考数据分块传输的概念;
选择器:如果为每一个连接都创建一个线程去处理请求,那么并发大的情况下,线程会导致OOM,如果内存有限的话。调度线程通过选择器,然后遍历注册到该选择器上面的通道的连接是否准备就绪,然后进行处理。比如是否可以开始read或者write数据。
通道和流不一样,流是单向的,而通道是双向的。
0 0
- Java NIO: NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- NIO--JAVA NIO 入门
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Timer和TimerTask
- 十个适合快速学习的C开源项目
- 用source tree操作git的操作注意事项
- MAC系统重置root密码
- 学习基数排序之前首先学习计数排序
- NIO-java
- 水水的哈希函数题解
- UITableView 滚动到指定行cell
- MySQL的备份方式
- mac通过终端连接linux操作系统
- css3基础知识第五章实战训练
- 【tomcat】tomcat配置ssl的蛋疼事
- Mysql5.7.9无法启动,服务没有报告任何错误,NET HELPMSG 3534
- 配置git项目