零基础java自学流程-Java语言高级546

本文探讨了Java中的BIO、NIO和AIO三种IO模型,适合的应用场景及各自的工作原理。BIO适合小连接数,NIO适用于连接密集且时间短的应用,AIO则适用于连接数多且时间长的场景,如相册服务器。通过实例和流程图揭示了它们在资源利用上的差异。

在Java中提供了三种IO模型:BIO、NIO、AIO,模型的选择决定了程序通信的性能。

1.1、使用场景

  • BIO
    BIO适用于连接数比较小的应用,这种IO模型对服务器资源要求比较高。
  • NIO
    NIO适用于连接数目多、连接时间短的应用,比如聊天、弹幕、服务器间通讯等应用。
  • AIO
    AIO适用于连接数目多、连接时间长的应用,比如相册服务器。

1.2、BIO

同步并阻塞模型,服务器会为每一个连接建立一个线程,如果连接过多,且线程不做任何事情,会极大的浪费资源,示意图如下:

1.2.1、机制


流程:

  1. 服务器端启动ServerSocket。
  2. 客户端启动Socket对服务器进行通信,服务器会为每个客户端建立一个线程与之通信。
  3. 客户端发送请求,先咨询服务器是否有线程响应,如果没有则会等待,或者被拒绝。
  4. 如果有响应,客户端线程会等待请求结束后,再继续执行。

 


尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibiliicon-default.png?t=M276https://www.bilibili.com/video/BV1qL411u7eE?spm_id_from=333.999.0.0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值