1.异步和同步
异步(async)是相对于同步(sync)来说的,简单理解,同步是串行的,异步是并行的。
好比说,A需要从B和C两个节点获取数据
第一种方式,A请求B,B返回给A数据,A再去请求C,在从C出获得数据。这种方式就是同步。
另一种方式,A去请求B,不等B返回数据,就去请求C,然后等B和C准备好数据再推送给A,A同样可以拿到B和C的数据,这就是异步。
注意,第二种方式B和C是同时处理A的请求的,是比第一种方式效率要高的,但是这种方式,有一个限制,就是从B和C之间要获取的数据不能有依赖关系,假如获取C的数据时候,C需要从B返回来的数据,那就只能采用第一种方式,先请求B,拿到B的数据,在去请求C。
举个比较直白的例子,把订外卖抽象成几步
1.下单,时间忽略不计。
2.餐厅做饭,10分钟。
3.找外卖小哥,5分钟。(这需要一系列很麻烦的算法算出要通知哪些小哥,等小哥接受派送,再计算出大概到达时间,假设5分钟)
4.派送,5分钟。
按照同步方式处理,1,2,3,4加起来20分钟时间。