同步调用和异步调用

简介: 同步调用和异步调用

对于同步与异步来说,好多人与我在初学的时候一样,肯定是一脸蒙x。不过没关系,慢慢来,我将我见到和理解的和大家分享一下,希望对大家有所帮助。


在这里先简单的说一下同步和异步,然后再通过一个我看过的小故事帮助大家进行记忆。


同步:与我们的认知稍微有些偏差,注意它并不是我们之前的“同步”(一起做,同时做),python中的多任务,所说的同步指的是按顺序来,也就是一件任务在执行的时候,会等待当前的任务执行完,再执行下一个任务。 多个任务之间执行的时候要求有先后顺序,必须一个先执行完成之后,另一个才能继续执行, 只有一个主线。


异步异步其实才是真正的多任务,它指的是这一件事情执行的时候,不会等结果,而是继续去执行其他任务多个任务之间执行没有先后顺序,可以同时运行,执行的先后顺序不会有什么影响,存在的多条运行主线。


网上某位大神曾讲过一个小故事:

同步调用就好像是去超市买东西,当你看见一台空调,它功能十分的强大,你十分的喜爱,满足你现在的需求,于是你决定买下来,然后导购和你说:先生,感谢您的喜爱,这台是展示机,我们会去仓库调取一台全新的,希望您等一会。虽然你现在又渴又热,但是你却很开心,然后就等啊等。空调终于回来了,卖家将你和空调用三轮车拉到了你家。你很开心的完成了买空调的任务。


异步就好像是你逛电商,某宝,某东。然后看到了空调,正在秒杀,你开心坏了,真是天助我也。然后就就下单了,这件事就完成了。接下来你会看看自己看了很久的包包,或者看看固态,内存条等等。然后同学叫你去吃饭,你又去吃饭了,等到回家的时候,空调正好送回来了。


当然这些只是我个人的理解,如果哪里不正确,希望大家多多包涵。

相关文章
|
前端开发
异步转同步的几种方法
在循环等待中,我们可以使用一个变量来指示异步操作是否已完成。然后,我们可以在循环中检查该变量,如果它指示异步操作已完成,则退出循环。
493 0
|
6天前
|
Java
java线程之异步回调
java线程之异步回调
9 0
|
2月前
|
前端开发 API
异步装载回调操作
异步装载回调操作
|
9月前
3 # 通过回调函数处理异步并发问题
3 # 通过回调函数处理异步并发问题
28 0
|
前端开发
forEach 如果传入异步回调如何保证并行执行?
forEach 本身是同步的,但是如果回调函数是异步的,那么forEach 会立即执行下一个任务,而不会等待回调函数执行完毕,这个时候如何保证异步任务的串行执行呢?
164 0
|
Java 开发者
异步调用|学习笔记
快速学习异步调用
63 0
异步调用|学习笔记
|
前端开发
21、同步与异步(三种方法)
21、同步与异步(三种方法)
121 0
|
前端开发
让异步操作同步执行的方法详解
让异步操作同步执行的方法详解
|
Java Spring
异步调用为什么要复制线程上下文信息?
异步调用为什么要复制线程上下文信息?
168 0
异步调用为什么要复制线程上下文信息?
|
C# UED
艾伟_转载:C# 委托的同步调用和异步调用
  委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。   同步调用的例子: using System;using System.
904 0