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的Flask框架中实现全文搜索功能
Apr 20 Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 Python
python 换位密码算法的实例详解
Jul 19 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
python如何生成网页验证码
Jul 28 Python
Python使用sklearn实现的各种回归算法示例
Jul 04 Python
Python datetime包函数简单介绍
Aug 28 Python
python读取word 中指定位置的表格及表格数据
Oct 23 Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 Python
详解用Python爬虫获取百度企业信用中企业基本信息
Jul 02 Python
python内置模块之上下文管理contextlib
Jun 14 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
推荐php模板技术[转]
2007/01/04 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
微信小程序 Storage API实例详解
2016/10/02 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
Python动态赋值的陷阱知识点总结
2019/03/17 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
详解python tkinter 图片插入问题
2020/09/03 Python
大学生新闻专业个人自我评价
2013/11/12 职场文书
商务考察邀请函范文
2014/01/21 职场文书
司机个人年终总结
2015/03/03 职场文书
小学教研工作总结2015
2015/05/13 职场文书
python pygame入门教程
2021/06/01 Python
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers