高性能网络编程之BIO与NIO区别

 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
若以下回答无法解决问题,邀请你更新回答
约定20125
2018-09-28 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:96%
帮助的人:2939万
展开全部
一、Java IO概念
1. 一个http请求节点
数据传输
1)网络传输
TCP、UDP
2)通信模型
BIO、NIO、AIO
数据处理
3)应用协议
HTTP、RMI、WEBSERVICE、Redis、JMS
4)序列化协议
JSON、javaobject、Hession
5)业务处理
servlet
t
二、BIO、NIO性能上的差异
在同样的请求下,BIO与NIO不同线程数来支撑。
推断 请求数 线程数
BIO 请求越多,支持的线程也越多?错误 300 400
NIO 支持的线程不会随着请求的增加而暴增 300 163

BIO:
NIO:同步非阻塞,协调员(多路复用器)

Tomcat同步阻塞式BIO通信模型:
http-bio-Acceptor
ServerSocket.accept()
读取写入,导致阻塞。
阻塞:表示在网络传输或者业务处理过程中的阻塞,指创建新线程、网络传输过程、业务处理过程中的阻塞。
建立连接、写入、读取 ----->同一个线程

Tomcat伪异步阻塞式IO通信模型:
管理线程生命周期、重复利用线程、任务队列管理
Acceptor->封装提交Task->线程池->分配Work线程
建立连接----->同一个线程
写入----->同一个线程
读取 ----->同一个线程

三、通信模型

四、BIO、NIO具体的示例
C10K问题
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式