同步异步阻塞非阻塞BIO-NIO-AIO

同步和异步、阻塞和非阻塞、BIO、NIO、AIO 都是与 IO 操作相关的概念,下面逐一解释:

同步和异步:同步和异步是指请求发出后是否需要等待响应。同步方式发送请求时,必须等待服务器返回结果,期间不能进行其他操作,直到收到响应后才能继续执行。异步方式发送请求后,可以继续执行其他操作,不需要等待响应,当服务器响应时,再进行处理。
-------------------
阻塞和非阻塞:阻塞和非阻塞是指等待操作是否会阻塞当前线程。阻塞方式会一直等待操作完成,期间线程处于阻塞状态,不能执行其他操作。非阻塞方式不会一直等待操作完成,可以继续执行其他操作。

BIO:BIO(Blocking IO)是一种阻塞式 IO 模型,每个请求都需要一个独立的线程进行处理,如果请求量大,会导致线程资源浪费和服务器响应延迟。

NIO:NIO(Non-blocking IO)是一种非阻塞式 IO 模型,它采用事件驱动的方式,将请求放到缓冲区中等待处理,当数据就绪时通知程序进行处理,可以使用单线程处理多个请求。

AIO:AIO(Asynchronous IO)是一种异步非阻塞式 IO 模型,采用回调函数的方式处理请求,当数据就绪时自动调用回调函数进行处理。

简单来说,BIO 适合于连接数较小、请求较短的场景,NIO 适合于连接数多、请求处理时间短的场景,AIO 适合于连接数多、请求处理时间长的场景。

综上所述,同步和异步、阻塞和非阻塞、BIO、NIO、AIO 都是 IO 操作相关的概念,它们的区别主要在于请求发出后的处理方式和操作的阻塞状态。开发者需要根据实际情况选择不同的 IO 模型和处理方式。
全部评论
感谢分享,学习一下
点赞 回复 分享
发布于 2023-03-16 18:39 山东
感谢大佬分享
点赞 回复 分享
发布于 2023-03-16 18:39 四川

相关推荐

给我发了笔试链接,想着等晚上回去做,结果还没做流程就终止了
伟大的小黄鸭在学习:我猜就是笔试几乎没用,就是用来给用人部门拖时间复筛简历的,可能用人部门筛到你简历觉得不合适就提前挂了
投递小鹏汽车等公司10个岗位
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
评论
3
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务