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调用Delphi写的Dll代码示例
Dec 05 Python
python中kmeans聚类实现代码
Feb 23 Python
PyQT实现多窗口切换
Apr 20 Python
Python FTP两个文件夹间的同步实例代码
May 25 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
python编写计算器功能
Oct 25 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
Dec 25 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 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中MD5函数使用实例代码
2008/06/07 PHP
php 常用类汇总 推荐收藏
2010/05/13 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
php中使用websocket详解
2016/09/23 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
python里运用私有属性和方法总结
2019/07/08 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
幼儿园毕业寄语
2014/04/03 职场文书
小学数学课题方案
2014/06/15 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
交流会主持词
2015/07/02 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL