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实现简单的TCP代理服务器
Oct 08 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
浅析PHP与Python进行数据交互
May 15 Python
python计算日期之间的放假日期
Jun 05 Python
python matlibplot绘制多条曲线图
Feb 19 Python
Python根据文件名批量转移图片的方法
Oct 21 Python
详解numpy的argmax的具体使用
May 27 Python
使用浏览器访问python写的服务器程序
Oct 10 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 Python
python中sklearn的pipeline模块实例详解
May 21 Python
浅析Python中字符串的intern机制
Oct 03 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读取文件并可支持远程文件的代码分享
2012/10/03 PHP
curl和libcurl的区别简介
2015/07/01 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
js资料toString 方法
2007/03/13 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
js Function类型
2011/12/04 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
javascript常用函数(2)
2015/11/05 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
详解JS预解析原理
2020/06/16 Javascript
python实现通过shelve修改对象实例
2014/09/26 Python
django实现前后台交互实例
2017/08/07 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
Python猴子补丁知识点总结
2020/01/05 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
物流专业大学生的自我鉴定
2013/11/13 职场文书
合伙经营协议书范本
2014/04/18 职场文书
2016春节家属慰问信
2015/03/25 职场文书
2015年林业工作总结
2015/05/14 职场文书