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交换变量
Sep 06 Python
Python查找相似单词的方法
Mar 05 Python
详解Python的单元测试
Apr 28 Python
Python使用metaclass实现Singleton模式的方法
May 05 Python
Python中字典映射类型的学习教程
Aug 20 Python
pygame游戏之旅 添加icon和bgm音效的方法
Nov 21 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
python根据多个文件名批量查找文件
Aug 13 Python
python随机生成库faker库api实例详解
Nov 28 Python
python opencv进行图像拼接
Mar 27 Python
python opencv实现图像配准与比较
Feb 09 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 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 max_execution_time执行时间问题
2011/07/17 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
js转html实体的方法
2016/09/27 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
硕士研究生个人求职信
2013/12/04 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
商铺门前三包责任书
2014/07/25 职场文书
个人四风问题原因分析及整改措施
2014/09/28 职场文书
2019广播稿怎么写
2019/04/17 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python