码迷,mamicode.com
首页 > 其他好文 > 详细

BIO、NIO、AIO

时间:2018-11-02 00:11:03      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:基础概念   同步非阻塞   bio   答复   概念   接口   状态   返回值   结果   

一、基础概念

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

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

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

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

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

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

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

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

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

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

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

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

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

 

BIO、NIO、AIO

标签:基础概念   同步非阻塞   bio   答复   概念   接口   状态   返回值   结果   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!