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自然语言处理之词干,词形与最大匹配算法代码详解
Nov 16 Python
Python selenium抓取微博内容的示例代码
May 17 Python
python实现windows下文件备份脚本
May 27 Python
利用Python如何制作好玩的GIF动图详解
Jul 11 Python
python3.6环境安装+pip环境配置教程图文详解
Jun 20 Python
如何实现Django Rest framework版本控制
Jul 25 Python
python 字典的打印实现
Sep 26 Python
python argparser的具体使用
Nov 10 Python
Python算法的时间复杂度和空间复杂度(实例解析)
Nov 19 Python
Python通过正则库爬取淘宝商品信息代码实例
Mar 02 Python
Python中相见恨晚的技巧
Apr 13 Python
python tkinter Entry控件的焦点移动操作
May 22 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
对Session和Cookie的区分与解释
2007/03/16 PHP
php学习 函数 课件
2008/06/15 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
php获取远程文件大小
2015/10/20 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
学生信息管理系统python版
2018/10/17 Python
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
python mysql断开重连的实现方法
2019/07/26 Python
pandas-resample按时间聚合实例
2019/12/27 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
护理自荐信范文
2013/10/05 职场文书
企业管理毕业生求职信范文
2014/03/07 职场文书
春节请假条
2014/04/11 职场文书
爱心募捐通知范文
2015/04/27 职场文书