在实现异步调用之前我们先进行什么是同步调用和异步调用

同步:是指完成事务的逻辑,先执行第一个事务,如果阻塞了,会一直等待,直到这个事务完成,再执行第二个事务,顺序执行

异步:是和同步相对的,异步是指在处理调用这个事务的之后,不会等待这个事务的处理结果,直接处理第二个事务去了,通过状态、通知、回调来通知调用者处理结果

分析一下,下面的例子:

定义了一个装饰器 async 和 A 、B 两个function 函数

A 里面sleep 10s , 然后打印 a function 字符串

B 里面直接打印 b function 字符串

我们顺序调用两个功能:

A()

B( )

由于函数A在睡的状态,我们又不希望程序被阻塞在函数A的睡的状态,所以我们采用异步执行,即在函数A睡的状态,让其他的任务执行

from threading import Thread

from time import sleep

def async(f):

def wrapper(*args, **kwargs):

thr = Thread(target=f, args=args, kwargs=kwargs)

thr.start()

return wrapper

@async

def A():

sleep(10)

print("函数A睡了十秒钟。。。。。。")

print("a function")

def B():

print("b function")

A()

B()

执行结果:

#b function

#函数A睡了十秒钟。。。。。。

#a function

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python异步调用_python如何实现异步调用函数执行相关推荐

  1. c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...

    在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...

  2. python基于pingouin包进行统计分析:anova函数执行非平衡双因素方差分析(Two-Way ANOVA、设置effsize参数为n2)、以dataframe的形式输出分析结果

    python基于pingouin包进行统计分析:使用anova函数执行非平衡双因素方差分析(Two-Way  ANOVA.设置effsize参数为n2).以dataframe的形式输出分析结果(包含S ...

  3. python opencv 摄像头_python+opencv实现摄像头调用的方法

    最近入了一块树莓派,想让其实现摄像头的调用,因此写下此博客备忘 一.树莓派网络的配置 首先,对树莓派进行网络配置,否则就无法进行软件的安装 我们知道,ifconfig命令可以修改ip地址.子网掩码等信 ...

  4. python中的模块调用_Python中模块互相调用的例子

    Python中模块互相调用容易出错,经常是在本地路径下工作正常,切换到其他路径来调用,就各种模块找不到了.解决方法是通过 __file__ 定位当前文件的真实路径,再通过 sys.path.appen ...

  5. python动态变量名以及调用_Python 动态变量名与调用介绍

    Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell). 动态变量名赋值 在使用 tkinter 时需要动态生成变量,如动态生成 var1... ...

  6. python教程三角函数_Python入门之三角函数tan()函数实例详解

    描述 tan() 返回x弧度的正弦值. 语法 以下是 tan() 方法的语法: import math math.tan(x) 注意:tan()是不能直接访问的,需要导入 math 模块,然后通过 m ...

  7. 计算机python实验报告_Python实验报告六:函数

    安徽工程大学 Python程序设计 实验报告 班级:物流192 姓名:周立学号:3190505227 日期:2020年5月5日 指导老师:修宇 [实验目的] 掌握函数的定义与使用方法:掌握函数的参数传 ...

  8. python画梅花_Python学习笔记三:函数

    1 #!/usr/bin/env python 2 #coding:utf-8 3 4 'a test module' 5 6 __author__ = 'Sunflower' 7 8 9 ## 一. ...

  9. python打印表格_python 6.7 编写printTable()函数表格打印(完整代码)

    编写一个名为printTable()的函数,它接受字符串的列表的列表,将它显示在组织良好的表格中,每列右对齐.假定所有内层列表都包含同样数目的字符串 输入: tableData = [['apple' ...

最新文章

  1. iOS下JS与OC互相调用(二)--WKWebView 拦截URL
  2. 学习笔记Spark(三)—— Spark架构及原理(spark架构、spark RDD)
  3. 2020年,产品经理如何提高求职成功率?
  4. 【Python】机器学习绘图神器Matplotlib首秀!
  5. redis命令操作(1)
  6. oracle中字符串的脚本表示什么意思,sql脚本中rem与prompt,define等的含义
  7. 【机器视觉】 dev_map_var算子
  8. [轻微]WEB服务器启用了OPTIONS方法/如何禁止DELETE,PUT,OPTIONS等协议访问应用程序/tomcat下禁用不安全的http方法...
  9. 奥迪推出大型自动驾驶数据集A2D2
  10. MySQL中创建用户
  11. 使用Python监控SNMP Trap并获取OSPF邻居状态
  12. 装饰模式实例+java,java 中设计模式(装饰设计模式)的实例详解
  13. Jupyter Notebook介绍
  14. pdf文件如何转换成dwg文件
  15. centos安装stress安装失败_Linux压力测试工具stress
  16. “5杯水,怎么分给6个领导?” 答案暴露认知层次...
  17. 自动控制原理 第一章 控制系统的一般概念
  18. NLP-文本处理:词性标注【使用成熟的第三方工具包:中文(哈工大LTP)、英文()】【对分词后得到的“词语列表”进行词性标注,词性标注的结果用于依存句法分析、语义角色标注】
  19. matlab模拟光栅,用MATLAB模拟正弦光栅的衍射
  20. 数值数据在计算机中的表示方法

热门文章

  1. 腾讯广告北京招聘专场,offer等你解锁
  2. 二进制文本编辑器_Textadept for mac(文本编辑) v10.5免费版
  3. delphi idtcpclient 发送十六进制00_91413足球推荐分析 法甲 04:00 南特 VS 巴黎圣日尔曼...
  4. pytorch1.4+tensorboard不显示graph计算图的问题
  5. SPP-net学习总结及Python实现
  6. activemq的高级特性:消息存储持久化
  7. PHP 的 empty 和 isset 对比
  8. CentOS 7 Graylog安装
  9. Android NDK开发: 通过C/C++调用第三方so库
  10. python文本分类算法_python编写朴素贝叶斯用于文本分类