对于异步的理解

之前对于同步方法和使用async、await的异步方法一直很迷惑。我觉得等待执行结果的异步和同步方法有什么区别吗?他们的执行顺序都是一样的啊?

不是都需要等待执行结果吗?今天翻了一下《C#高级编程》,才算搞清楚这里面的差异,原来使用了async、await的异步是不会阻塞线程的。

首先说说关于同步方法和异步方法的区别。比如说web网站加载一些网络资源,是使用同步方法请求,那么此时web网站的用户界面将会阻塞,

直到该方法完成对资源的网络调用,并完成结果分析。完成这些调用所需的时间取决与网络速度,以及服务器当前的工作量。对于用户来说,界面卡掉、一段时间的等待都是不愉快的。

所以使用异步调用。异步可以避免阻塞,在此期间可以做更多的事情。但是异步有一个缺陷,相对于同步来说,它对于程序的流程充满了不确定性,顺序可能会颠倒。

所以在某些场景,比如说有多个异步方法被调用,他们是有依赖关系的,后面的异步方法需要使用到之前异步方法的结果,我们需要按顺序调用这些异步方法,

这个时候就需要使用async、await关键字来等待执行的结果,但是它不会阻塞线程。

转载于:https://www.cnblogs.com/lifuquan/p/7552944.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值