首页 > 其他 > 详细

BIO、NIO、AIO

时间:2018-11-01 23:32:56      阅读:199      评论:0      收藏:0      [点我收藏+]

一、基础概念

同步:调用方死等结果,等到结果继续往下走。我调用一个结果,结果返回前我就死等结果。

异步:调用接口后不需要一直死等结果,有结果了通知我。

两者区别就是会不会等待结果,会等待结果的是同步,不会等待结果的是异步。

阻塞:等待返回结果时当前线程被挂起,不能做其他事。

非阻塞:等待返回结果的过程中,我可以去做其他事。

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.

举个例子:我打电话去书店问,老板,有没有《分布式系统》这本书。

同步机制就是:老板会说,等一等我去查下,结果可能查了5分钟,也可能查了好几天,等查好了告诉我,我就一直在那里死等。

异步机制就是:老板会说,等我找到后给你电话。通过回调这种方式来通知我。

阻塞机制就是:在等待答复过程中,你会把自己挂起,直到得到这本书有没有的结果。

非阻塞机制是:不管老板有没有告诉你,你先一边玩去了,只是过段时间check下老板有没有答复你。

二、BIO(Block IO阻塞IO):服务器会为每个客户端链接开专职一个线程,也就是1VS1的关系,一台服务器可以启动的线程数是固定的,如果一堆请求过来,服务器肯定挂了,这个方案不好。

三、NIO(Non Block IO同步非阻塞IO):

 

BIO、NIO、AIO

原文:https://www.cnblogs.com/panning/p/9893015.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!