当前位置: 移动技术网 > IT编程>软件设计>架构 > (1)对比:阻塞与非阻塞、同步与异步

(1)对比:阻塞与非阻塞、同步与异步

2019年08月06日  | 移动技术网IT编程  | 我要评论

康熙来了小时代20130719,你说我是温柔坏男人,黄婉伶黄婉君

阻塞与非阻塞

阻塞:a程序调用b程序,a等待返回结果,等待中a程序线程被占用,不进行其它操作。

非阻塞:a程序调用b程序,a程序线程不被占用。

阻塞--》非阻塞 的最常用解决方案:缓存,a将请求依次装入缓存中,a不管与b是否执行完成,由b随后依次处理,返回给a。

 

同步与异步

同步:一个线程依次执行所有任务

异步:多个线程并行执行任务

同步--》异步 的最常用解决方案:多线程,依次启动多个线程执行任务,同时可以引入线程池,减少线程不断分配和销毁造成的开销。

 

 

很多人都听说过消息队列、消息中间件mq,企业服务总线esb等。

简单来说就是企业服务总线esb就是搭了一条管道,所有的指令请求都可以扔进去,顺着管道流向目的地。用到的技术就是消息队列mq,如rabbitmq,activemq,kafka等。

我之前在软考架构设计师的时候,案例分析中就有一个问题谈esb的优点,与soa做比较。在论文中我也一直阐述用到了esb,技术框架就是rabbitmq。

我清楚记得,我的答案说的是“异步调用”,后来过了几个月我才明白这是错的,应该是“非阻塞”,因为这里与多线程并没有关系,而是调用端的“不等待,非阻塞”,只需要将消息扔到总线里面就不用管了,实现了高可用和最终一致性,cap中的ap。

考试结果就是案例分析查了5分,没有通过考试。

 

上文中的消息队列、分布式、cap等后续再谈。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网