BIO、NIO

网络通信基本常识

什么是socket?

socket 是应用层与 TCP/P 协议族通信的中间软件抽象层,它是一组接口,主机A 的应用程序要能和主机B 的应用程序通信,必须通过 Socket 建立连接。

短连接

SOCKET 连接发送完数据后马上断开连接

长连接

建立 SOCKET 连接后不管是否使用都保持连接

BIO

阻塞的 I/O

①若一个服务器启动就绪,那么主线程就一直在等待着客户端的连接,这个等待过程中
主线程就一直在阻塞。
②在连接建立之后,在读取到 socket 信息之前,线程也是一直在等待,一直处于阻塞
的状态下的。

NIO

非阻塞读,使一个线程从channel发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,该线程可以继续做其他的事情。

非阻塞写,一个线程请求写入一些数据到channel,但不需要等待它完全写入,这个线程同时可以去做别的事情。

线程通常将非阻塞 IO 的空闲时间用于在其它通道上执行 IO 操作,所以一个单独的线程可以管理多个输入和输出通道(channel)。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值