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中signal包的使用
Nov 13 Python
python flask 多对多表查询功能
Jun 25 Python
PyQt5每天必学之组合框
Apr 20 Python
PyCharm设置SSH远程调试的方法
Jul 17 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
实例讲解Python中整数的最大值输出
Mar 17 Python
Python语法分析之字符串格式化
Jun 13 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
jupyter notebook的安装与使用详解
May 18 Python
django实现日志按日期分割
May 21 Python
Python 线程池模块之多线程操作代码
May 20 Python
解决pytorch-gpu 安装失败的记录
May 24 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中获取时间的下一周下个月的方法
2014/03/18 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
checkbox 复选框不能为空
2009/07/11 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
清除输入框内的空格
2016/12/21 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python获取远程图片大小和尺寸的方法
2015/03/26 Python
python计算文本文件行数的方法
2015/07/06 Python
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
python安装pil库方法及代码
2019/06/25 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
企业治理工作自我评价
2013/09/26 职场文书
大学生个人事迹材料
2014/01/21 职场文书
平面设计师岗位职责
2014/09/18 职场文书
教师工作失职检讨书
2014/09/18 职场文书
公司更名通知函
2015/04/24 职场文书
2015年党小组工作总结
2015/05/26 职场文书
东京审判观后感
2015/06/01 职场文书
小学教师见习总结
2015/06/23 职场文书
开学第一周总结
2015/07/16 职场文书
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技