首页 > 代码库 > 同步(Synchronous)和异步(Asynchronous)

同步(Synchronous)和异步(Asynchronous)

同步和异步通常用来形容一次方法调用。同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息的传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中“真实”地执行。整个过程,不会阻碍调用者的工作。对于调用者来说异步调用似乎是一瞬间就完成了。如果异步调用需要返回结果,那么当这个异步调用真实完成时,则会通知调用者。

打个比方,比如我们去购物,如果你去商城实体店买一台空调,当你到了商场看中了一款空调,你就想售货员下单。售货员去仓库帮你调配物品。这天你热得实在不行了,就催着商家赶紧给你送货。于是你就等在商店里,候着他们,直到商家把你的空调和你一起送回家里,一次愉快的购物就结束了。这就是同步调用。

不过,如果我们赶时髦,就坐在家里打开电脑,在网上订购一台空调。当你完成网上支付的时候,对你来说购物过程已经结束了。虽然空调还没有到家,但是你的任务都已经完成了。商家接到了你的订单后,就会加紧安排送货当然这一切已经跟你无关了。你已经支付完成,想干什么就能去干什么,出去溜圈都不成问题,等送货上门的时候,接到商家的电话,回家一趟签收完事,这就是异步调用。

同步(Synchronous)和异步(Asynchronous)