扫盲-对异步的理解
程序员文章站
2022-07-09 20:23:55
对于异步的理解。 之前对于同步方法和使用async、await的异步方法一直很迷惑。 我觉得等待执行结果的异步和同步方法有什么区别吗? 他们的执行顺序都是一样的啊? 不是都需要等待执行结果吗? 今天翻了一下《C 高级编程》,才算搞清楚这里面的差异,原来使用了async、await的异步是不会阻塞线程 ......
对于异步的理解。
之前对于同步方法和使用async、await的异步方法一直很迷惑。
我觉得等待执行结果的异步和同步方法有什么区别吗?
他们的执行顺序都是一样的啊?
不是都需要等待执行结果吗?
今天翻了一下《c#高级编程》,才算搞清楚这里面的差异,原来使用了async、await的异步是不会阻塞线程的。
首先说说关于同步方法和异步方法的区别。
比如说web网站加载一些网络资源,是使用同步方法请求,那么此时web网站的用户界面将会阻塞,直到该方法完成对资源的网络调用,并完成结果分析。
完成这些调用所需的时间取决与网络速度,以及服务器当前的工作量。
对于用户来说,界面卡掉、一段时间的等待都是不愉快的。
所以使用异步调用。
异步可以避免阻塞,在此期间可以做更多的事情。
但是异步有一个缺陷,相对于同步来说,它对于程序的流程充满了不确定性,顺序可能会颠倒。
所以在某些场景,比如说有多个异步方法被调用,他们是有依赖关系的,后面的异步方法需要使用到之前异步方法的结果,我们需要按顺序调用这些异步方法,这个时候就需要使用async、await关键字来等待执行的结果,但是它不会阻塞线程。
本文来自>
推荐阅读
-
谈谈我对百度竞价推广的理解和看法
-
对squid中refresh_pattern的一些理解和建议
-
谈谈你对aja的理解(一、二)
-
对numpy中shape的深入理解
-
C++二进制小数、对异域的理解
-
对pytorch中x = x.view(x.size(0), -1) 的理解说明
-
浅谈个人对客户端JavaScript同步、异步、执行顺序等概念的理解
-
深入理解JavaScript编程中的同步与异步机制
-
对比Hashtable,HashMap,TreeMap,谈谈对HashMap的理解
-
Winform中对DevExpress的RadopGroup的Description、Value、Tag、Text的理解与使用