您当前的位置: 首页 >  网络

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Java】BIO、NIO、AIO网络编程模型概述

星拱北辰 发布时间:2019-11-29 00:55:07 ,浏览量:0

文章目录
  • 网络I/O模型
  • BIO模型
  • NIO模型
  • AIO模型
  • 对比总结

网络I/O模型

我们知道,UNIX环境下常见的网络I/O模型有5种:

  • 同步阻塞
  • 同步非阻塞
  • I/O复用
  • 信号驱动
  • 异步非阻塞

那么基于上述五种模型,Java中,随着NIO和AIO(NIO 2.0)的引入,一般具有以下三种网络编程模型:

  • BIO
  • NIO
  • AIO

这次,我们就简单聊聊这三种网络编程模型。

BIO模型

BIO是一个经典的网络编程模型,是通常我们实现一个服务器端程序的过程。

步骤如下:

  • 主线程accept请求阻塞。
  • 请求到达,创建新的线程来处理这个socket,完成对客户端的响应。
  • 主线程继续accept下一个请求。

这个模型的一个明显的缺点: 当客户端连接快速增长时,服务器端创建的线程也会骤增,系统性能可能会骤降。

因此,在该模型的基础上,可以创建线程池,从而避免对每个客户端线程都创建一个新的服务器端线程,进而提升性能(创建线程是很耗费资源的,

关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0882s