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实现的Google IP 可用性检测脚本
Apr 23 Python
Python实现单词拼写检查
Apr 25 Python
开始着手第一个Django项目
Jul 15 Python
Python实现的文本对比报告生成工具示例
May 22 Python
python3实现SMTP发送邮件详细教程
Jun 19 Python
python写程序统计词频的方法
Jul 29 Python
python数据处理之如何选取csv文件中某几行的数据
Sep 02 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
python用什么编辑器进行项目开发
Jun 17 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 Python
python元组拆包实现方法
Feb 28 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 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
Window下PHP三种运行方式图文详解
2013/06/11 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
python 实现归并排序算法
2012/06/05 Python
Python中获取网页状态码的两个方法
2014/11/03 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
Python Pandas 箱线图的实现
2019/07/23 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
设计师求职信模板
2014/05/06 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js