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实现dict版图遍历示例
Feb 19 Python
Python手机号码归属地查询代码
May 04 Python
利用python批量检查网站的可用性
Sep 09 Python
pyenv命令管理多个Python版本
Mar 26 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
python如何求解两数的最大公约数
Sep 27 Python
基于Python实现定时自动给微信好友发送天气预报
Oct 25 Python
python_opencv用线段画封闭矩形的实例
Dec 05 Python
Pytorch之parameters的使用
Dec 31 Python
详解Python3中的 input() 函数
Mar 18 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
May 25 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自定义函数实现代码
2011/12/30 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php生成静态页面的简单示例
2014/04/17 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
js验证是否为数字的总结
2013/04/14 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
Python脚本实现下载合并SAE日志
2015/02/10 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
2016/10/09 Python
python 生成器协程运算实例
2017/09/04 Python
python中的计时器timeit的使用方法
2017/10/20 Python
python简单实现操作Mysql数据库
2018/01/29 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
Django 重写用户模型的实现
2019/07/29 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
css3 transform属性详解
2014/09/30 HTML / CSS
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
sealed修饰符是干什么的
2012/10/23 面试题
企业总经理岗位职责
2014/02/13 职场文书
矿泉水广告词
2014/03/20 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS