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

同步、异步与阻塞、非阻塞

时间:2018-04-16 19:51:40      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:状态   发送   异步调用   程序   完成   系统   nio   注册   连接   

同步阻塞,用户空间的应用程序执行一个系统调用,这意味着应用程序会一直阻塞,直到系统调用完成为止(数据传输完成或者发生错误)。

同步非阻塞,设备以非阻塞形式打开,这意味着 io 操作不会立刻完成,需要应用程序调用多次来等待完成。

 

同步和异步 1)同步:发出一个调用时,在没有得到结果前,该调用就不返回,一旦返回就有结果。2)异步:调用在发出之后就直接返回,所以没有返回结果,换句话说,当一个异步调用发生后,调用者不会立即得到结果,而是在调用发生后,被调用者通过状态通知来通知调用者,或者通过回调函数来处理这个调用。

阻塞和非阻塞 1)阻塞:调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果之后才会返回。2)非阻塞:不能立刻得到结果之前,该调用不会阻塞当前线程。

 

BIO:同步并阻塞,一个连接一个线程,适用于链接数量小且固定的架构。      NIO:同步非阻塞:一个请求一个线程,客户端发送的链接请求都会注册到多路复用器

上,多路复用器轮训到链接有 io 请求时才启动一个线程进行处理,适用于链接比较多,比较短。

AIO:异步非阻塞,一个有效请求一个线程,适用于链接数目多且长。

同步、异步与阻塞、非阻塞

标签:状态   发送   异步调用   程序   完成   系统   nio   注册   连接   

原文地址:https://www.cnblogs.com/cing/p/8858071.html

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