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实例代码教程在线版(查询手册)
Feb 18 Python
Python设计模式之代理模式实例
Apr 26 Python
python实现获取序列中最小的几个元素
Sep 25 Python
不要用强制方法杀掉python线程
Feb 26 Python
详解K-means算法在Python中的实现
Dec 05 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
解决python3捕获cx_oracle抛出的异常错误问题
Oct 18 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
Jun 11 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
Jul 31 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中判断变量为空的几种方法分享
2013/08/26 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
php建立Ftp连接的方法
2015/03/07 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
js跑步算法的实现代码
2013/12/04 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
理解javascript中的闭包
2017/01/11 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
react 组件传值的三种方法
2019/06/03 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
python多线程扫描端口示例
2014/01/16 Python
Python读写Redis数据库操作示例
2014/03/18 Python
Python操作Excel之xlsx文件
2017/03/24 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
2020/06/04 Python
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server