开发者社区> 问答> 正文

关于同步非阻塞

同步非阻塞 io 是针对客户端还是服务端来说的?
来源:云原生后端社区

展开
收起
Atom 2020-04-25 14:39:29 839 0
1 条回答
写回答
取消 提交回答
  • 同步异步是针对Server端而言,阻塞or非阻塞指的是Client端而言。
    异步同步指的是服务提供者提供服务的方式,是立马服务,还是先接待,慢慢做,做完了,再通知你,客户无法立马得到服务。同步是 你要啥,当场就拿给你,异步是 你要啥,我记下了,我慢慢做,做好了,我通知你。
    比如,饭店里一般都是异步的,你下单后,是先给你个号,做好了再通知你(通知有好几种方式,我放到你指定的位置,你自己去拿,一种是我通知你做好了,你自己过来拿,一种是自己主动不停的问:做好了吗?),不是立马为你服务。
    阻塞非阻塞说的是服务需求者在得到服务反馈之前需不需要等待。
    Reactor模型
    一个Accptor线程,专门用来负责与Client建立连接,你可以类比到饭店门外的揽客的服务员,专门拉客进去消费的。
    一个或多个EventLoop,用来负责接待顾客,你可以类比到饭店里服务接待顾客下单的服务员,你点菜,她会记录下来,然后把下单请求记录到系统,系统再把订单分派给厨师去异步处理。处理线程:就是真正干活的,类比饭店里的厨师。({江苏-互联网-零度} Reactor模型很多,可以是单线程模型、可以是多线程模型,也可以是主从多线程模型。)单线程模型就是同时只有一个厨师干活,干完了,下一个订单再派个厨师上来接着干。
    来源:云原生后端社区

    2020-04-25 14:46:58
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载