python如何实现异步调用函数执行


Posted in Python onJuly 08, 2019

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

  • 同步:是指完成事务的逻辑,先执行第一个事务,如果阻塞了,会一直等待,直到这个事务完成,再执行第二个事务,顺序执行
  • 异步:是和同步相对的,异步是指在处理调用这个事务的之后,不会等待这个事务的处理结果,直接处理第二个事务去了,通过状态、通知、回调来通知调用者处理结果

分析一下,下面的例子:

定义了一个装饰器 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连接mysql数据库示例(做增删改操作)
Dec 31 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 Python
深入理解NumPy简明教程---数组3(组合)
Dec 17 Python
Python基于whois模块简单识别网站域名及所有者的方法
Apr 23 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
Django csrf 验证问题的实现
Oct 09 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
python生成lmdb格式的文件实例
Nov 08 Python
pandas每次多Sheet写入文件的方法
Dec 10 Python
python感知机实现代码
Jan 18 Python
Python 经典算法100及解析(小结)
Sep 13 Python
python 调试冷知识(小结)
Nov 11 Python
django中forms组件的使用与注意
Jul 08 #Python
python celery分布式任务队列的使用详解
Jul 08 #Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 #Python
Python数据类型之列表和元组的方法实例详解
Jul 08 #Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 #Python
Python实现的统计文章单词次数功能示例
Jul 08 #Python
用python建立两个Y轴的XY曲线图方法
Jul 08 #Python
You might like
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
jQuery 入门讲解1
2009/04/15 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
js实现选项卡效果
2020/03/07 Javascript
Python的一些用法分享
2012/10/07 Python
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
python pygame实现方向键控制小球
2019/05/17 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
函授毕业生自我鉴定
2013/11/06 职场文书
管理部部长岗位职责
2013/12/05 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
小学运动会报道稿
2014/10/04 职场文书
离婚律师函范本
2015/05/27 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android