-
NIO网络模型:
非阻塞IO模型,服务器端提供一个单线程的selector来统一管理所有客户端接入的连接,并负责监听每个连接所关心的事件
弹性伸缩能力加强,服务器端一个线程处理所有客户端的连接请求,客户端的个数与服务器端的线程数呈M比1的关系
单线程节省资源
查看全部 -
NIO网络模型
查看全部 -
NIO模型:非阻塞IO
客户端的个数与服务器端的线程数呈M:1的关系
查看全部 -
BIO网络模型缺点
阻塞式I/O模型,会导致服务器端的业务线程会因阻塞IO的问题一直阻塞等待客户端发起请求,如果客户端不发起请求,服务端的业务线程会一直存在,就会耗费大量系统资源
弹性伸缩能力差:服务器端的线程数与客户端的个数呈1比1的关系
多线程耗资源
查看全部 -
BIO模型:阻塞同步IO
查看全部 -
BIO编程模型:
过程:
1. 服务端启动,开始建立监听客户端的连接请求;
2. 客户端启动,向服务器端发起建立连接请求;
3. 服务器在收到客户端的请求后,将会创建一个新的线程;
4. 服务端新创建的线程会与客户端建立socket连接,用于响应客户端的请求,通知客户端连接建立成功,你随时可以给我发送数据。
5. 服务器端处理完客户端的请求之后,就会处于等待状态,等待客户端再次发起请求
服务端为每一个客户端建一个线程,一旦客户端请求过多,服务端线程数量也会增多,服务端压力增大
查看全部 -
模型:对事物共性的抽象
编程模型:对编程共性的抽象
查看全部 -
NIO :Non-blocking I/O(非阻塞IO) 或者New I/O
应用场景:高并发网络服务器支持岗
查看全部 -
先建立模型概念:
查看全部 -
Buffer的属性
Capacity:分配的buffer容量
Position:当前操作的位置
Limit:写模式下等于Capacity,读模式下等于最多能读取的数据
Mark:记录mark的位置,调用reset方法时position会回到mark的位置
flip:
public final Buffer flip() { limit = position; position = 0; mark = -1; return this; }
clear:
public final Buffer clear() { position = 0; limit = capacity; mark = -1; return this; }
查看全部 -
1.创建select多路复用器查看全部
-
BIO的缺陷,当有1000个客户端请求时,则服务器端会创建1000个线程去进行处理操作。
查看全部 -
NIO :Non-blocking I/O(非阻塞IO) 或者New I/O
应用场景:高并发网络服务器支持岗
查看全部 -
NIO网络编程缺陷
查看全部 -
NIO网络编程实战7个步骤
查看全部
举报