Python3-异步进程回调函数(callback())介绍


Posted in Python onMay 02, 2020

废话不多说,大家之家看代码吧!

#异步
'''
举例:
你喊你朋友吃饭,你朋友正忙,
如果你一直在那等他,等你朋友忙完了,你们一块去。--同步调用

你喊你朋友吃饭,你朋友正忙,
如果你自己做你自己的事,你朋友忙完,找到你,一块去吃饭。--异步调用

'''
# from bs4 import BeautifulSoup
from multiprocessing import Process,Pool
import os
import time

#子进程任务
def download():
  print('__进程池中的进程——pid=%d,ppid=%d'%(os.getpid(),os.getppid()))
  for i in range(3):
    print('--文件--%d'%i)
    # time.sleep(1)
  return '下载完成!'

#主进程调用回调函数
def alterUser(msg):
  print("----callback func --pid=%d"%os.getpid())
  print(msg)

if __name__ == "__main__":
  p = Pool(3)
  p.apply_async(func=download,callback=alterUser)
  #当func执行完毕后,return的东西会给到回调函数callback
  print("---start----")
  p.close()#关闭进程池,关闭后,p不再接收新的请求。
  p.join()
  print("---end-----")

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/apple/PycharmProjects/stage4/thread/t19.py
---start----
__进程池中的进程——pid=6087,ppid=6086
--文件--0
--文件--1
--文件--2
----callback func --pid=6086
下载完成!
---end-----

补充知识:Python 线程开启多任务及回调函数

不说废话了,看代码吧!

# coding:utf-8
from time import sleep
import thread

def long_io(cb):
  print "开始调用long_IO"

  def func(callback):
    print "start long_IO"
    sleep(2)
    callback(1)
    print "end long_IO "
  thread.start_new_thread(func, (cb,))
  print "long_IO函数返回"

def on_finish(ret):
  print "调用了回调函数"
  print "ret %s" % ret
  print "结束了回调函数"

def req_a():
  print "start calling a"
  long_io(on_finish)
  print "end a"

def req_b():
  print "start calling b"
  sleep(1)
  print "end b"

# 同步概念:
if __name__ == '__main__':
  """模拟主循环调度"""
  req_a()
  print '-------------------'
  req_b()
  while True:
    pass

以上这篇Python3-异步进程回调函数(callback())介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中函数的参数定义和可变参数用法实例分析
Jun 04 Python
python列表操作之extend和append的区别实例分析
Jul 28 Python
Python3实现购物车功能
Apr 18 Python
对python字典元素的添加与修改方法详解
Jul 06 Python
Python 运行 shell 获取输出结果的实例
Jan 07 Python
python实现屏保程序(适用于背单词)
Jul 30 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
jupyter lab文件导出/下载方式
Apr 22 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
Python容器类型公共方法总结
Aug 19 Python
Python Django模型详解
Oct 05 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 #Python
判断Threading.start新线程是否执行完毕的实例
May 02 #Python
python中threading开启关闭线程操作
May 02 #Python
浅谈python3打包与拆包在函数的应用详解
May 02 #Python
构建高效的python requests长连接池详解
May 02 #Python
如何基于windows实现python定时爬虫
May 01 #Python
如何基于python实现不邻接植花
May 01 #Python
You might like
PHP 多进程 解决难题
2009/06/22 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
PHP多例模式介绍
2013/06/24 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
网页自动跳转代码收集
2009/09/27 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
Python文档生成工具pydoc使用介绍
2015/06/02 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
行政助理岗位职责
2013/11/10 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
健康家庭事迹材料
2014/05/02 职场文书
法学院毕业生求职信
2014/06/25 职场文书
如何才能写好调研报告?
2019/07/03 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
Java spring单点登录系统
2021/09/04 Java/Android
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers